javascript中的正则表达式问题

javascript中的正则表达式问题,javascript,regex,Javascript,Regex,为什么这场比赛 "foo = '@test.bar';\nfooa = @test.darn;".match(/@([a-z][a-z\.-_]*)/igm) 而不仅仅是 ["@test.bar", "@test.darn;"] 在英语中,有些字母有特殊的含义。例如,点没有,不需要转义。相比之下,减号定义了一系列字符,如果你的意思是字面上的减号,你需要将其转义或放在字符类的末尾/开头。您的范围从到.实际上包括/0123456789:@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\

为什么这场比赛

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

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


在英语中,有些字母有特殊的含义。例如,点没有,不需要转义。相比之下,减号定义了一系列字符,如果你的意思是字面上的减号,你需要将其转义或放在字符类的末尾/开头。您的范围从
.
实际上包括
/0123456789:@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^
。您可能需要使用
[a-z.\-\u]
[a-z.\-]

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

我想从
的范围包括
但不是
你是想包含“-”字符还是真的想指定一个范围?@elclanrs
\w
也包含
\d
有趣的是,
\
实际上也包含在这个范围内,所以OP问题中的
\
是双重冗余的。@inhan:噢,是的,你说得对……我想OP want也是
-
,所以它不是一个范围。我想从
.
的范围包括
但不是
你是想包含“-”字符还是真的想指定一个范围?@elclanrs
\w
也包含
\d
有趣的是,
\
实际上也包含在这个范围内,所以OP问题中的
\
是双重冗余的。@inhan:噢,是的,你说得对……我想OP want也是
-
,所以它不是一个范围。哦。我一直认为点必须转义,而负号没有转义,这很好。@Nico:通常情况下,在
[]
之外具有特殊意义的字符都不需要在内部转义。需要对
-
进行转义,因为它在
[]
@elclanrs中具有特殊意义。不正确。您还需要转义结束方括号-当然更不用说反斜杠和插入符号了。@elclanrs
^
也必须在字符类中转义。@inhan&@JanDvorak:是的
^
[]
中有特殊的含义,因此必须对其进行转义,
]
我认为这一点似乎很明显……哦。我一直认为点必须转义,而负号没有转义,这很好。@Nico:通常情况下,在
[]
之外具有特殊意义的字符都不需要在内部转义。需要对
-
进行转义,因为它在
[]
@elclanrs中具有特殊意义。不正确。您还需要转义结束方括号-当然更不用说反斜杠和插入符号了。@elclanrs
^
也必须在字符类中转义。@inhan&@JanDvorak:是的
^
[]
中有特殊的含义,因此必须对其进行转义,
]
我认为这一点很明显。。。
["@test.bar", "@test.darn"]