gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:52:22 26 4
gpt4 key购买 nike

我一直在努力解决我希望用正则表达式解决的问题。

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

例子:

  • 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 页面,了解环视、否定断言等,这让我头晕目眩。

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

最佳答案

这个正则表达式应该可以解决问题:

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

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

基本上它所做的就是确保您要删除的空间前面有一个“[”,但如果前面有一个“]”则没有。

只要您没有嵌套的方括号,它就应该可以工作,例如:

a a[b [c c]b]

因为那样的话,第一个“b”后面的空格会被去掉,变成:

aa[b[c c]b]

关于php - 正则表达式删除除括号之间的所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1209415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com