@mentions的正则表达式是做什么的?

时间:2014-02-12 21:46:24

标签: javascript regex

所以我一直试图找出这个正则表达式的意思 - 而且我没有走得太远。

(\w+\.?(?:\w+)?)

语言是Javascript。

我理解这个正则表达式的一部分 - 它看起来像是捕捉点,任何单词,但禁止word.word - 但我不确定?

2 个答案:

答案 0 :(得分:2)

这不是禁止word.word(?:…)创建non-capturing group。它就像一个普通的(…)组,但不会在结果中单独捕获它。

所以,这相当于(\w+\.?(\w+)?),除了它只有1个捕获组。

答案 1 :(得分:1)

它匹配一个单词(字母,数字,下划线),可选地后跟一个点,可选地后跟另一个单词。像:

"foo"
"foo."
"foo.bar"

故障:

  • \w+一句话(你已经知道)
  • \.?一个可选的点。 ?表示“匹配零或其中一个”
  • (?:\w+)?一个可选词。开头的?:表示“不捕获此”(与封闭整个事物的parens相对,这意味着“捕获此内容);以及?最后意味着它是可选的