php – 正则表达式删除除括号之外的所有空格

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 正则表达式删除除括号之外的所有空格脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在努力解决我希望用正则表达式解决的问题.

假设我有一个字符串,可以包含任何字母数字,并且子字符串可能被方括号包围.这些子字符串可以像这样出现在字符串中的任何位置.也可以有任意数量的括号子串.

例子:

> aaa [bb b]
> aaa [bbb] ccc [d dd]
> [aaa] bbb [c cc]

您可以看到某些括号中的子串中有空格,这很好.我现在的主要问题是当我遇到括号外的空格时,如下所示:

> a aa [bb b]

现在我想保留括号内的空格,但在其他地方删除它们.

对于像以下字符串来说,这会变得有点棘手:

> a aa [bb b] c cc [d dd] e ee [f ff]

在这里,我希望返回:

> aaa [bb b] ccc [d dd] eee [f ff]

我花了一些时间阅读不同的reg ex页面关于lookarounds,负面断言等等,这让我头晕目眩.

注意:对于访问此文件的任何人,我并不是在寻找任何涉及嵌套括号的解决方案.如果是这种情况,我可能会像下面提到的一些评论一样务实地做.

解决方法

这个正则表达式应该做的伎俩:

[ ](?=[^\]]*?(?:\[|$))

只需替换与“”匹配的空格即可.

基本上它所做的只是确保你要移除的空间在它前面有一个“[”,但如果它前面有一个“]”则没有.

只要你没有嵌套的方括号,那就应该有效,例如:

a a [b [c c] b]

因为在这种情况下,第一个“b”之后的空格将被删除,它将变为:

aa [b [c c] b]

脚本宝典总结

以上是脚本宝典为你收集整理的php – 正则表达式删除除括号之外的所有空格全部内容,希望文章能够帮你解决php – 正则表达式删除除括号之外的所有空格所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。