我有一个字母,存储在一个名为$txt
的字符串中。每一行都由<p>
和</p>
代替。我想删除亲爱的......行,如果存在的话。
我试过了:
$text = preg_replace('/Dear.*/\<\/p\</',"",$text);
但我得到preg_replace(): Unknown modifier
错误
答案 0 :(得分:3)
/
此处为正则表达式分隔符,因此preg_replace
假设您的正则表达式为Dear.*
且\<\/p\</
为修饰符。
您可以改为使用:
$text = preg_replace('/^<p>Dear.*<\/p>/m',"",$text);
m
修饰符使^
与每行的开头匹配。
答案 1 :(得分:1)
正则表达式以分隔符启动,并以分隔符结束。在这里,您选择了分隔符/
。第一个/
启动正则表达式,下一个/
结束正则表达式,后面的所有内容都是修饰符。
/Dear.*/\<\/p\</
^ ^
start end
并且\
不是有效的修饰符。
选择不同的分隔符,或者转义正则表达式中的分隔符:
!Dear.*/\<\/p\<!
/Dear.*\/\<\/p\</
我不知道为什么你需要/
开始。