我试图删除具有一个或两个字符的行。
前任:
text text
11
0
text
结果:
text text
text
我曾经用过$text = str_replace('/^(.{2})', 'dsfsdfsd', $text);
但没用。
怎么了?
str_replace
不接受正则表达式。这是一个针/干草堆搜索和替换功能。表示它寻找字符串文字。
对于正则表达式搜索/替换,请preg_replace
改用。
例如,如果您要删除任何一行包含正好1位数或恰好2位数的文本,则可以将以下正则表达式与一起使用preg_replace
。
$text = '
text text
11
0
text
';
$text = preg_replace('/^\d{1,2}$/m', '<replaced>', $text);
echo $text;
/**
* This should give you ...
*
* text text
* <replaced>
* <replaced>
* text
*/
此处\d
表示PCRE中的任何数字字符[0-9]
,方括号中的数字表示匹配1个数字字符或2个数字字符。从此表达式中删除插入符号和符号将使它与在主题中找到的任何1位或2位数字字符表达式匹配。在这里,它会在模式修改器允许PCRE引擎进入多行模式的每一行上寻找完全匹配的内容。您也可以在手册中阅读有关PCRE模式语法的更多信息。{1,2}
m
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句