千见
我需要替换标记中的所有文本(不是代码)。所以我正在使用:
preg_replace('/<.*?>([^<]*)<\/.*?>/', "new_text", $str)
我得到了结果。但是我需要删除所有空白和空白匹配项,或者从搜索中删除它们。我该怎么做?
哦
我建议这样的事情:
<.*?>((?=[^<]*\S.*?<)([^<]+))<\/.*?>
或者,如果您想在比赛中加入换行符,请执行以下操作:
(<.*?>)(?=[^<]*\S.*[<\n])([^<]+)(<\/.*?>)
这是一个演示
与替换您的匹配组类似,[^<]+
以确保返回至少一个字符
但是,为确保仅空白字符串不会被匹配,在开始标记match之后添加了一个前瞻:
(?=[^<]*\S.*?<)
这样可以确保在两个标签之间至少有一个不是空格的字符。
有关前瞻的更多信息
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句