JS正则表达式匹配单词选项没有backref

时间:2011-07-02 22:20:21

标签: javascript regex

让我说我有:

/(private|public|protected)\s+function\s+(\w+)\((.*)\)\s+{/gi

匹配函数声明的开头。我不想使用(private|public|protected),因为()会进行反向引用,但我无法使用[],因为他们不会不匹配完整的单词。

基本上,我只希望函数名称为$1,参数为$2

谢谢大家。

**编辑**

根据答案,我使用了?:

例如。 /(?:private|public|protected)\s+function\s+(\w+)\((.*)\)\s+{/

1 个答案:

答案 0 :(得分:7)

您可以使用非捕获组:

(?: ... )

来自MDN documentation

  

(?:x)匹配'x'但不记得匹配。这些被称为非捕获括号。无法从结果数组的元素[1], ..., [n]中调用匹配的子字符串。