正規表現の要点
量指定子かどうかを意識することが大切。量子定数がない場合は一文字
正規表現は表現に当てはまる文字列を返すというものである。フォーマットを正規表現で指定して、可変部位を抽出したいときは()を使ってキャプチャする。
また、文字列を()でくくるだけで文字列を単語の塊ように一文字として扱える。しかし上の場合と構文がかぶってしまうので、(?: )として使い分けもできる
論理演算子
table:table
意味 記法 補足
または | ()で囲まない場合、全体に括弧がついているとみなされる
否定 ^ []の中でのみ、[の直後につける、肯定との共存は不可能
メタ文字
table:table
記法 意味
. 任意の文字
[] 列挙した文字の中の一文字 カンマは不要 ハイフンで範囲指定もできる
\d [0-9]
\w [a-zA-Z0-9_]
\b 単語の境界
\t タブ
\s 目視できない文字(改行も含む)
量指定子
table:table
記法 意味
{,} 指定した文字数の範囲
? 文字数が1または0(あるorなし)
+ 一文字以上(長さ指定なし)
* 0文字以上(あるかor長さ指定なし)
*? *の最小文字数でのマッチバージョン
+? ?の最小文字数でのマッチバージョン
位置
table:table
記法 意味
^ 行頭
$ 行末
(?=regex) 直後にregexがある
(?!regex) 直後にregexが無い
(?<=regex) 直前にregexがある
(?<!regex) 直前にregexが無い
要するに、基本系が(?=regex)で、否定なら!にして、直前なら<を追加する。