正则表达式。在两次出现中使用相同的字符

时间:2017-11-22 14:34:00

标签: javascript regex

我有这样的字符串 ( ( ( some text here

我想删除两个括号之间的空格。我正在尝试使用正则表达式:

value.replace(/\( \(/g, "((");

但是这个语句只删除了第一个空格,因此得到的字符串是:
(( ( some text here

据我所知,regExp仅在第一次出现时使用第二个括号。我想让regExp使用该括号进行两次出现。所以我想要的结果是:
   ((( some text here

是否可以通过正则表达式进行此操作?

1 个答案:

答案 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 - 肯定前瞻,确保当前位置右侧有(?=\()个字符(但(不会被消耗,因此不会被删除)。