所以我一直试图找出这个正则表达式的意思 - 而且我没有走得太远。
(\w+\.?(?:\w+)?)
语言是Javascript。
我理解这个正则表达式的一部分 - 它看起来像是捕捉点,任何单词,但禁止word.word - 但我不确定?
答案 0 :(得分:2)
这不是禁止word.word
。 (?:…)
创建non-capturing group。它就像一个普通的(…)
组,但不会在结果中单独捕获它。
所以,这相当于(\w+\.?(\w+)?)
,除了它只有1个捕获组。
答案 1 :(得分:1)
它匹配一个单词(字母,数字,下划线),可选地后跟一个点,可选地后跟另一个单词。像:
"foo"
"foo."
"foo.bar"
故障:
\w+
一句话(你已经知道)\.?
一个可选的点。 ?
表示“匹配零或其中一个”(?:\w+)?
一个可选词。开头的?:
表示“不捕获此”(与封闭整个事物的parens相对,这意味着“做捕获此内容);以及?
最后意味着它是可选的