dポイントプレゼントキャンペーン実施中!

[\w+\-.]+

これについてなのですが、" - " はエスケープされていて " + " , " . " がエスケープされていないのは何故でしょうか?

A 回答 (3件)

[ ]の中のことでしょうか?正規表現の記号は、書く場所によって意味が変わります。



+ は、[] の外だと「1回以上の繰り返し」ですが、[ ] の中では「+という文字」ですので、エスケープ不要です。

. は、[] の外だと「任意の1文字」ですが、[ ] の中では「.という文字」ですので、エスケープ不要です。

- は、[] の中でかつ、先頭末尾以外だと、「文字の範囲」を示す特殊文字です。[a-z]で「英小文字のどれか」です。[a\-z]とエスケープすると「aまたは-またはz」という風に「-という文字」の意味になります。
[\w+.-]のように、最後に書くとエスケープ不要です。[ ] の外でもエスケープ不要です。
    • good
    • 0

ブラケット [ ]の中での "-"には特別な意味があるので、"-"を文字として扱いたい場合にはエスケープが必要になります。



ブラケット [ ]の中での"-"は、普通[0-9]の様に使用します。
これで[0123456789]と同じ意味になります
    • good
    • 0
この回答へのお礼

確かに、完全に忘れていました...ありがとうございましたm(_ _)m

お礼日時:2020/03/02 17:44

「+」も「.」も文字ではなく、メタ文字だからでしょう。

    • good
    • 0
この回答へのお礼

確かにその通りでした。教えて頂き有難うございますm(_ _)m

お礼日時:2020/03/02 17:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!