【问题标题】:Optional capture group till end of line [duplicate]可选捕获组直到行尾[重复]
【发布时间】:2020-07-23 22:31:49
【问题描述】:

给定以下字符串

我有以下正则表达式

^\/\/\s(prevent\s?eval\s|eval\s?prevent)\s?([^\n]*)$

我想要做的是匹配以下内容:

// preventeval
hello world

[preventEval]

// preventeval meow
hello world

[preventEval, 喵]

https://regexr.com/529p7

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    \s匹配任何空白字符,而换行符一个空白字符,所以它被它匹配(然后整个下一行被([^\n]*)匹配)。

    可选地匹配一个纯空格(并在第一次替换中从prevent\s?eval\s 的末尾删除\s)。

    您也可以使用.* 代替[^\n]*,您可能不想匹配换行符:

    ^\/\/\s(prevent\s?eval|eval\s?prevent) ?(.*)$
    

    您可能不希望 任何 \ss 匹配换行符,在这种情况下,请将它们全部替换为纯空格:

    ^\/\/ (prevent ?eval|eval ?prevent) ?(.*)$
    

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 1970-01-01
      • 2012-09-22
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多