PHP正则表达式:将标记修改为标记+;内容

PHP正则表达式:将标记修改为标记+;内容,php,regex,Php,Regex,我使用以下命令在code标记内的任何内容上使用htmlentities: $content = preg_replace_callback('#\<code\>(.+?)\<\/code\>#s',create_function('$matches','return "<code>".htmlentities($matches[1])."</code>";'),$content); 这样我就可以在页面上重复它。这非常有效,但它仅在代码标记正好是时

我使用以下命令在
code
标记内的任何内容上使用htmlentities:

$content = preg_replace_callback('#\<code\>(.+?)\<\/code\>#s',create_function('$matches','return "<code>".htmlentities($matches[1])."</code>";'),$content);
这样我就可以在页面上重复它。这非常有效,但它仅在代码标记正好是
时才有效。如何更新正则表达式,使其能够处理
中的内容

例如:

<code>
<code class="someclass">
<code class="someclass" data-attr="value">





如果必须使用regex ~
#…
。此外,PHP还具有匿名性functions@Phil我想看看这是怎么重复另一个问题的。即使是这样,对于这个相关的问题似乎也没有一个明确的答案。对于一个与此问题不同的问题,有几十个答案和几十个观点。模式必须排除>,请参阅我的答案。我不熟悉这些匿名函数。能给我指出正确的方向吗?呃,我真的很抱歉。如果您必须使用regex ~
#…
,则链接到此帖子。此外,PHP还具有匿名性functions@Phil我想看看这是怎么重复另一个问题的。即使是这样,对于这个相关的问题似乎也没有一个明确的答案。对于一个与此问题不同的问题,有几十个答案和几十个观点。模式必须排除>,请参阅我的答案。我不熟悉这些匿名函数。能给我指出正确的方向吗?呃,我真的很抱歉。是要链接到这个帖子的~我不知道。我对正则表达式一点也不擅长。谢谢你的回答。你知道我现在如何保留原来的
]*\>
而不是用
替换吗?你不应该需要它,通常你会转义一些字符,比如用来开始/结束regex模式的字符。或\s等,\t等。请参阅更新的答案。太棒了,非常感谢您的帮助,我不知道。我对正则表达式一点也不擅长。谢谢你的回答。你知道我现在如何保留原来的
]*\>
而不是用
替换吗?你不应该需要它,通常你会转义一些字符,比如用来开始/结束regex模式的字符。或\s等,\t等。请参阅更新的答案。太棒了,非常感谢您的帮助
$content = preg_replace_callback('#(\<code[^>]*\>)(.+)\<\/code\>#s',create_function('$matches','return $matches[1] . htmlentities($matches[2])."</code>";'),$content);
$content = preg_replace_callback('#(<code[^>]*>)(.*)</code>#s',create_function('$matches','return $matches[1] . htmlentities($matches[2])."</code>";'),$content);