繁体   English   中英

Perl Regex替换段落标签

[英]Perl Regex Substitute paragraph tag

我正在尝试使用正则表达式将paragragh标记内的内容替换为br br标记后的内容

 s/^[<]p[>](.+)[<][/]p[>]/\1[<]br[>][<]br[>]/

我收到错误Unmatched [在以<--- HERE m / ^ [<] p> [<] [

我尝试将[/]更改为反斜杠/,但我不确定如何解决这个问题。 谢谢=]

我实际上是

s/^<p>(.+)<\/p>/\1<br><br>/;

尝试这个:

s#(?=</p>)#<br><br>#

每当处理/ ,我喜欢使用另一个分隔符。 在这里,我使用#

因为,您只想添加<br><br>而不触摸<p>..</p> ,我们可以使用先行锚。 那是(?=...)所做的。 它寻找一个点之后有一个</p>并将其替换为替换字符串。

请注意,环顾四周的表达式为零宽度,即它们与任何字符都不匹配。

您可以使用此版本的正则表达式:

s/<p>(.+?)<\/p>/\1<br><br>/si

我删除了字符串起始锚^ ,很有可能您不需要它。 .+? 将确保您将匹配最接近的匹配</p> si选项将启用不区分大小写的匹配和. 还将匹配换行符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM