使用<h2>标签替换<p class ="someClass">的正则表达式?

qwe*_*rty 7 php regex replace paragraph html-heading

我需要替换所有:

<p class="someClass someOtherClass">content</p>
Run Code Online (Sandbox Code Playgroud)

<h2 class="someClass someOtherClass">content</h2>
Run Code Online (Sandbox Code Playgroud)

在一串内容中.基本上我只是想替换"p"一个"h2".

这是我到目前为止:

/<p(.*?)class="(.*?)pageTitle(.*?)">(.*?)<\/p>/
Run Code Online (Sandbox Code Playgroud)

整个匹配<p>的标签,但我不知道我怎么会去更换<p><h2>

我该怎么做呢?

Dae*_*ica 12

以下应该做你想要的:

$str = '<p>test</p><p class="someClass someOtherClass">content</p>';

$newstr = preg_replace('/<p .*?class="(.*?someClass.*?)">(.*?)<\/p>/','<h2 class="$1">$2</h2>',$str);

echo $newstr;
Run Code Online (Sandbox Code Playgroud)

点(.)匹配所有.星号匹配0或任意数量的匹配.括号内的任何内容都是一个组.该$2变量是对匹配组的引用.大括号({1})内的数字是一个量词,这意味着匹配前一个组一次.可能不需要那个量词,但无论如何它仍然存在并且工作正常.反斜杠会转义任何特殊字符.最后,问号使得该.*位非贪婪,因为默认情况下它是.