各言語別の正規表現の使い方は次のページにまとめています。

概要

ある一定のパターンの文字列を探索あるいは置換するために用いられるパターンの表現形式。細かい実装が異なることはあるが、多くの処理系で共通した記述規則を用いてパターンを定義できる。

  • メタ文字
  • 量指定子
  • 文字クラス
  • 略記法
  • 修飾子

参考:

正規表現 – Wikipedia

メタ文字

  • \エスケープ文字
  • ^検索対象の先頭/複数行モードでは行頭
  • $検索対象の終端/複数行モードでは行末
  • .任意の一文字 (改行を除く)
  • []文字クラス
  • |選択肢
  • ()サブパターンを定義する
  • ?0 または 1 回の合致
  • *0 回以上の繰り返し
  • +1 回以上の繰り返し
  • {n,m}n 回以上 m 回以下の繰り返し

参考:

メタ文字 | so-zou.jp

メタ文字 | PHP Manual [公式]

略記法

略記法は環境や使用言語によって使えない場合や定義が異なる場合がある。基本的なものに関しては Perl 互換あるいは GNU 互換で実装されている場合には概ね共通して使用できる。

  • \d数字 [0-9]
  • \D数字以外 [^0-9]
  • \h水平スペース [ \t\xa0]
  • \H水平スペース以外
  • \sスペース [ \t\r\n\v\xa0\x85]
  • \Sスペース以外
  • \v垂直スペース [\r\n\v\x85]
  • \V垂直スペース以外
  • \w単語を構成する文字 [_0-9A-Za-z]
  • \W単語を構成する文字以外 [^_0-9A-Za-z]

参考:

よく使用される文字クラスの略記 | Let’s プログラミング (javadrive.jp)

正規表現の略記法 \d と \s と \w | ものかの

正規表現の略記法 | ハウツー野郎

Generic Character Types | pcre2pattern specification (PCRE) [Official]

修飾子/モード指定

  • i大文字小文字を区別しない (ケースレスモード)
  • m改行を含む複数行に対してマッチを実行する (マルチラインモード)
  • x空白は無視されてコメントを記入できるモード (フリーフォーマットモード/コメントモード)

参考:

マッチモード | so-zou.jp

修飾子 | とほほの WWW 入門

Internal Option Setting | pcre2pattern specification (PCRE) [Official]

フリーフォーマットモード

参考:

パターンの中の空白やコメントを無視する (/x修飾子) | Let’s プログラミング (javadrive.jp)

正規表現の中にコメントを含める、/x オプションによるフリーフォーマット記法について | このすみ技術ろぐ

clean up regex – Stack Overflow

正規表現エンジン

参考:

Comparison of Regular-Expression Engines – Wikipedia

まとめ

参考:

とほほの正規表現入門 | とほほの WWW 入門

正規表現 記法まとめ | galife

正規表現メモ | kbk

What does this regex mean? – Stack Overflow

オンラインツール

参考:

Regex101 – Build, Test, and Debug Regex

鬼車 (Oniguruma)

参考:

kkos/oniguruma: Regular Expression Library – GitHub

RE.ja – kkos/oniguruma – GitHub

鬼車 – Wikipedia

鬼雲 (Onigumo)

参考:

k-takata/Onigmo: Onigmo is a regular expressions library forked from Oniguruma – GitHub

鬼雲に非包含オペレータを実装した話 – Qiita

RE2

正規表現ライブラリ

参考:

google/re2: RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library – GitHub

高速かつ省メモリな Google の正規表現ライブラリ RE2 についてのメモ | naoya_t@hatenablog

記事をシェアする:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です