我在 PHP 中有一些正则表达式没有做我想要的。
我想要的是:
[segment type="segment_name"]more text here[/segment]
改为:
[segmentclass='segment_name segment']more text here[/segment]
和:
[segment]more text here[/segment]
改为:
[segmentclass=' segment']more text here[/segment]
这是我所拥有的:
$pattern = '/(\[segment.*?)(type=\"(.+?)\")?(.*?\[\/segment\])/is';
$replacement = '$1class=\'$3 segment\'$4';
$content = preg_replace($pattern, $replacement, $content);
有没有人有任何想法?这 ?after (type=\"(.+?)\") 是使该块可选。似乎替换只是跳过它,因为它是可选的。我想我在某个地方有贪婪的问题,但我无法解决它。
如果您对我也可以这样做的另一种方式有任何想法,请回复。