我正在尝试使用正则表达式替换paragragh标签内的内容,其中包含内容,后跟br br标签
s/^[<]p[>](.+)[<][/]p[>]/\1[<]br[>][<]br[>]/
我收到的错误不匹配[在正则表达式中标记为&lt; --- HERE m / ^ [&lt;] p&gt; [&lt;] [
我尝试将[/]更改为反斜杠/但我不确定如何解决这个问题。谢谢=]
我实际上得到了它
s/^<p>(.+)<\/p>/\1<br><br>/;
答案 0 :(得分:1)
试试这个:
s#(?=</p>)#<br><br>#
每当处理/
时,我都喜欢使用另一个分隔符。我在这里使用#
。
因为,您只想追加<br><br>
而不是触及<p>..</p>
中的任何其他内容,我们可以使用前瞻锚点。这就是(?=...)
的作用。它会查找一个点,之后会有一个</p>
并用替换字符串替换它。
请注意,环视表达式为零宽度,即它们与任何字符都不匹配。
答案 1 :(得分:0)
您可以使用此版本的正则表达式:
s/<p>(.+?)<\/p>/\1<br><br>/si
我删除了字符串开始锚^
,很有可能你不需要它。 .+?
会确保您匹配最匹配的</p>
。 si
选项会启用不区分大小写的匹配,.
也会匹配换行符号。