正規表現におけるハイフンの挙動

「-」を「ハイフン」と読みますが、年配の人だと「ハイフォン」と読む人が多いようです。
英語の発音記号を見るとどちらでも正しいようですが、「ハイフォン」だとベトナムの都市を思い浮かべてしまうので、私は「ハイフン」と読んでいます。

正規表現におけるハイフンは「○から○まで」という範囲を指定するときに使えてとても便利ですが、この挙動について勘違いしていたので、調べてみました。JavaScriptです。

「a-b-c」という文字列に対して正規表現「[a-c]」を使ってみます。

x="a-b-c";
y=x.match(/[a-c]/g);
z=y.join(",");

この場合、結果(z)は「a,b,c」となりました。
同じようにして色々と試してみます。

正規表現 結果
a-b-c [a-c] a,b,c
a-b-c [a-] a,-,-
a-b-c [-c] -,-,c
a-b-c [a-c-] a,-,b,-,c

つまり[○-○]という形で使った場合は「○から○まで」という意味になりますが、これ以外では単に「-」という文字そのものを表すということになるようです。
[a-c]⇒a,b,c
[a-]⇒a,-
[-c]⇒-,c
[a-c-]⇒a,b,c,-

実は、今までハイフン(「-」)を指定するには「\-」としていたのですが、実際は「\」は不要でした。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報