1. ホーム
  2. regex

[解決済み] 正規表現におけるキャレット

2022-03-13 21:24:56

質問

具体的には、どのような場合に ^ 正規表現において、quot;match start"の意味と、quot;not following"の意味は何ですか?

Wikipediaの記事などから、先頭では前者、括弧で使われた場合は後者を意味すると判断しましたが、キャレットが先頭にある場合と括弧にある場合では、プログラムではどのように処理されるのでしょうか?例えば、どうでしょう。 ^[b-d]t$ にマッチするのでしょうか?

解決方法は?

^ の内部および冒頭にある場合のみ、"not the following"を意味します。 [] ということで [^...] .

中に入っている場合 [] しかし ではなく を指定した場合、実際の ^ の文字が表示されます。

エスケープされている場合( \^ ) を意味し、また実際の ^ という文字があります。

それ以外の場合は、文字列や行の開始を意味します(どちらを意味するかは言語や設定に依存します)。

つまり、簡単に言うと

  • [^abc] -a,b,cではありません。
  • [ab^cd] -a, b, ^ (文字), c, d のいずれか。
  • \^ -> a ^ キャラクター
  • それ以外の場所 -> 文字列/行の先頭。

そこで ^[b-d]t$ を意味します。

  • 行頭
  • b/c/d 文字
  • t文字
  • 行末