我有这样的字符串
( ( ( some text here
我想删除两个括号之间的空格。我正在尝试使用正则表达式:
value.replace(/\( \(/g, "((");
但是这个语句只删除了第一个空格,因此得到的字符串是:
(( ( some text here
据我所知,regExp仅在第一次出现时使用第二个括号。我想让regExp使用该括号进行两次出现。所以我想要的结果是:
((( some text here
是否可以通过正则表达式进行此操作?
答案 0 :(得分:4)
.replace(/\( \(/g, "((")
替换不起作用,因为两个(
字符消费。为了确保您匹配连续的空格分隔的(
字符,您需要确保仅检查第二个(
是否存在而不是消费。这就是看待救援的时候了。
只有在.replace(/\(\s+(?=\()/g, '('))
后跟{1}}后,您才可以使用(
替换1 +空格:
var s = "( ( ( some text here";
console.log(s.replace(/\(\s+(?=\()/g, '('));

请参阅regex demo。
模式详情
\(
- (
字符\s+
- 1+个空格(注意:如果您只需删除(
字符之间的单个空格,请替换为单个空格,或{{1} })\s
- 肯定前瞻,确保当前位置右侧有(?=\()
个字符(但(
不会被消耗,因此不会被删除)。