正则表达式,用于删除[...]中包含的元素周围的<p>标记

Mat*_*att 1 regex wordpress

我是一个完全正则表达式的菜鸟.我正在使用wordpress,我正拼命地试图处理wordpress的wautop,我讨厌和喜欢(更讨厌!).无论如何我试图删除<p>某些命令周围的标签.

这是我得到的:

<p>
[hide]
<img.../>
[/hide]
</p>
Run Code Online (Sandbox Code Playgroud)

要么

<p>
[imagelist]
<img .../>
<img .../>
[/imagelist]
</p>
Run Code Online (Sandbox Code Playgroud)

这是我想要的:

[hide]
<img.../>
[/hide]
Run Code Online (Sandbox Code Playgroud)

要么

[imagelist]
<img .../>
<img .../>
[/imagelist]
Run Code Online (Sandbox Code Playgroud)

我试过了:

preg_replace('/<p[^>]*>(\[[^>]*\])<\/p[^>]*>/', '$1', $content); // No luck!
Run Code Online (Sandbox Code Playgroud)

编辑:当我正在进行正则表达式时,它仍然只是一个包含文本的变量..它还没有被解析为html.我知道这是可能的,因为我已经通过摆脱图像标签周围的p标签来做到这一点.所以我只需要一个正则表达式来处理将来某个时候将被解析为html的文本. 这是一个类似的问题

谢谢!马特穆勒

Pau*_*lin 5

您不能使用正则表达式来解析HTML,因为根据定义,HTML是非常规语言.期间,讨论结束.