我一直在摔跤我正在希望用正则表达式解决的问题。正则表达式除去括号之间的所有空格
比方说,我有一个字符串,可以包含任何字母数字,并且可能包含方括号内的子字符串。这些子字符串可以像这样出现在字符串中的任何位置。也可以有任意数量的括号子字符串。
实例:
- AAA [BB B]
- AAA [BBB] CCC [d DD]
- [AAA] BBB并[c CC]
可以看到在一些括号内的子字符串中有空格,没关系。我的主要问题,现在的问题是,当我遇到空间这样的支架之外:
- 一节AA [BB B]
现在我要保留括号内的空间,但在其他地方删除。
这就会变得稍微有点棘手像字符串:
- 一节AA [BB B](闭杯)[d DD]éEE [F FF]
在这里,我想回报为:
- AAA [BB b] CCC [d DD] EEE [F FF]
我花了一些现在可以通过关于lookaround,negative assertions等不同章节的不同阅读方式阅读这些内容,并且它让我的头脑旋转起来。
注意:对于访问此的任何人,我没有寻找任何涉及嵌套括号的解决方案。如果是这种情况,我可能会像下面提到的一些评论一样务实地做。
+1回答实际的问题:如何执行*这个任务*(即没有嵌套)*用正则表达式*。 – 2009-07-31 02:42:10
太棒了,谢谢。我有点接近,但我无法处理过去两套括号内的子串。我不需要嵌套括号(phew!)。 – seano 2009-07-31 13:48:00
的“| $”末需要的情况下,你的字符串是像“一节AA [BB B](闭杯)[d DD]éEE [F FF; G GG”,摆脱之间的空间的克氏。他们没有跟随他们,所以你也想检查字符串的结尾('$')。你是对的,第一个字符类中的'[''不是必需的。这是因为'。*?b'基本上与'[^ b] * b'相同,只要这是正则表达式的结尾。在我使用'?'之前,这只是我在写作时留下的。字符。但有趣的是,'。+?b'与'[^ b] + b'不同。 – Senseful 2009-07-31 15:29:38