web-dev-qa-db-ja.com

正規表現の介護者

具体的には^は「マッチスタート」を意味し、正規表現では「次ではない」という意味ですか?

ウィキペディアの記事やその他の参考資料から、前者は括弧で、後者は括弧で使用することを意味すると結論付けましたが、プログラムはキャレットが開始および括弧にある場合をどのように処理しますか?何を言う、^[b-d]t$一致しますか?

37

^は、[]の内部および先頭でのみ「次ではない」という意味なので、[^...]です。

[]内にあるが、開始時にnotの場合、実際の^文字を意味します。

エスケープされたとき(\^)、実際の^文字も意味します。

それ以外の場合はすべて、文字列/行の開始を意味します(言語/設定に依存します)。

要するに:

  • [^abc]-> a、b、cではない
  • [ab^cd]-> a、b、^(文字)、cまたはd
  • \^-> ^文字
  • その他の場所->文字列/行の開始。

^[b-d]t$は次を意味します。

  • 行頭
  • b/c/dキャラクター
  • tキャラクター
  • 行末
83
Dukeling