1
"foo = '@test.bar';\nfooa = @test.darn;".match(/@([a-z][a-z\.-_]*)/igm)

为什么这样匹配

["@test.bar", "@test.darn;"]

而不仅仅是

["@test.bar", "@test.darn"]

?

4

1 回答 1

5

字符类中,一些字母具有特殊含义。例如,点没有,也不需要转义。相反,减号定义了一系列字符,如果您的意思是字面意义上的减号,您需要对其进行转义或将其放在字符类的末尾/开头。您的范围从._实际上包括./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_. 您可能想使用[a-z.\-_]or[a-z._-]代替。

于 2013-01-21T00:44:58.573 回答