我想我可以很容易地使用多个正则表达式来做这个,但是我想替换字符串中的所有空格,但是当这些空格在括号之间时不能。
例如:
Here is a string (that I want to) replace spaces in.
在正则表达式之后我想要字符串
Hereisastring(that I want to)replacespacesin.
使用前瞻或外观操作符是否有一种简单的方法可以做到这一点?
我对他们的工作方式感到有些困惑,并且不确定他们是否会在这种情况下工作。
答案 0 :(得分:9)
试试这个:
replace(/\s+(?=[^()]*(\(|$))/g, '')
快速解释:
\s+ # one or more white-space chars
(?= # start positive look ahead
[^()]* # zero or more chars other than '(' and ')'
( # start group 1
\( # a '('
| # OR
$ # the end of input
) # end group 1
) # end positive look ahead
用简单的英语:如果前面可以看到(
或输入结尾而没有遇到任何括号,它会匹配一个或多个空白字符。
在线Ideone演示:http://ideone.com/jaljw
如果符合以下条件,则上述操作无效: