我在字符串上有几个 preg_replace 未知修饰符警告,但我不知道正则表达式修复 [重复]
Posted
技术标签:
【中文标题】我在字符串上有几个 preg_replace 未知修饰符警告,但我不知道正则表达式修复 [重复]【英文标题】:I have a couple preg_replace unknown modifiers warnings on a string and I don't know the regex fix [duplicate] 【发布时间】:2014-08-12 19:59:49 【问题描述】:我有一个字符串抛出了几个 php 错误。
我正在使用一些正则表达式从图像和 iframe 中去除 <p>
标签。
我还使用正则表达式将<br\>
替换为两个<br\><br\>
。
我在 wordpress 中的$content
上使用它。
它抛出一个错误,因此the_content();
中没有返回任何内容
如果我删除函数,内容看起来很好,但格式没有变化。
我假设如果我修复了这些错误,内容会正常工作,但我不知道如何调整正则表达式。
无论如何这里都是错误:
[12-Aug-2014 19:46:46 UTC] PHP Warning: preg_replace(): Unknown modifier '>' in /functions.php on line 101
[12-Aug-2014 19:46:46 UTC] PHP Warning: preg_replace(): Unknown modifier 'f' in /functions.php on line 102
[12-Aug-2014 19:46:46 UTC] PHP Warning: preg_replace(): Unknown modifier '?' in /functions.php on line 133
当然还有代码:
function filter_ptags($content)
$content = preg_replace('/<p>s*(<a .*>)?s*(<img .* />)s*(</a>)?s*</p>/iU', '123', $content);
return preg_replace('/<p>s*(<iframe .*>*.</iframe>)s*</p>/iU', '1', $content);
function strip_content($content)
$content = preg_replace(array('/(<brs*/?>s*)1,/'), array('<br/><br/>'), $content);
我真的需要花一些时间来掌握正则表达式...
【问题讨论】:
【参考方案1】:您需要在正则表达式中转义 /
。应该是\/
应该是 \s*
而不是 s*
来匹配零个或多个空格。
变化:
(<brs*/?>s*)1,
收件人:
(<br\s*\/?>\s*)1,
这里是online demo,您也可以在这里验证您的正则表达式。
【讨论】:
啊,成功了,前两行正则表达式呢? 进行上述两项更改并在上述站点进行测试。如果仍然有任何问题,请分享一些意见。 第一个尝试<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>
,第二个尝试<p>\s*(<iframe .*>*.<\/iframe>)\s*<\/p>
以上是关于我在字符串上有几个 preg_replace 未知修饰符警告,但我不知道正则表达式修复 [重复]的主要内容,如果未能解决你的问题,请参考以下文章