"foo = '@test.bar';\nfooa = @test.darn;".match(/@([a-z][a-z\.-_]*)/igm)
なぜこれが一致するのか
["@test.bar", "@test.darn;"]
だけではなく
["@test.bar", "@test.darn"]
?
"foo = '@test.bar';\nfooa = @test.darn;".match(/@([a-z][a-z\.-_]*)/igm)
なぜこれが一致するのか
["@test.bar", "@test.darn;"]
だけではなく
["@test.bar", "@test.darn"]
?
文字クラスでは、一部の文字に特別な意味があります。たとえば、ドットには何も含まれておらず、エスケープする必要はありません。対照的に、マイナスは文字の範囲を定義します。文字通りマイナスを意味する場合は、それをエスケープするか、文字クラスの末尾/先頭に配置する必要があります。.
からまでの範囲には、_
実際には が含まれます./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_
。代わりに[a-z.\-_]
orを使用することもできます。[a-z._-]