忽略空匹配php正则表达式

千见

我需要替换标记中的所有文本(不是代码)。所以我正在使用:

preg_replace('/<.*?>([^<]*)<\/.*?>/', "new_text", $str)

我得到了结果但是我需要删除所有空白和空白匹配项,或者从搜索中删除它们。我该怎么做?

我建议这样的事情:

<.*?>((?=[^<]*\S.*?<)([^<]+))<\/.*?>

或者,如果您想在比赛中加入换行符,请执行以下操作:

(<.*?>)(?=[^<]*\S.*[<\n])([^<]+)(<\/.*?>)

这是一个演示

与替换您的匹配组类似,[^<]+以确保返回至少一个字符

但是,为确保仅空白字符串不会被匹配,在开始标记match之后添加了一个前瞻:

(?=[^<]*\S.*?<)

这样可以确保在两个标签之间至少有一个不是空格的字符。

有关前瞻的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章