正規表現(Regular Expression、略して regex または regexp)は、文字列内の文字の組み合わせを一致させるためのパターンです。正規表現は、テキストの検索、編集、処理に使用できます。多くのプログラミング言語やツールで広く使用されています。
README.md
中国語の文字を一致させる:[\u4E00-\u9FA5]
ダブルバイト文字(漢字を含む)を一致させる:[^\x00-\xFF]
中国の身分証番号、最後の数字またはX:d{17}[d|X|x]
中国の携帯電話番号:1[3-9]d{9}
中国の固定電話番号:d{3}-d{8}|d{4}-d{7}
中国の郵便番号:[1-9]d{5}(?!d)
メールアドレスの検証:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
URLを一致させる:[a-zA-z]+://[^s]*
IPv4アドレスを一致させる:d+.d+.d+.d+
基本構文
リテラル文字:それ自体に一致します。たとえば、正規表現 abc は文字列 "abc" に一致します。
メタ文字:特別な意味を持つ文字。たとえば:
- .:改行を除く任意の単一文字に一致します。
- ^:文字列の先頭に一致します。
- $:文字列の末尾に一致します。
- *:前のサブ式に0回以上一致します。
- +:前のサブ式に1回以上一致します。
- ?:前のサブ式に0回または1回一致します。
- |:OR演算を示します。たとえば、a|b は "a" または "b" に一致します。
- ():グループ化とキャプチャに使用されます。
- []:括弧内の任意の文字に一致します。たとえば、abc は "a"、"b"、または "c" に一致します。
- {}:前のサブ式に指定された回数一致します。たとえば、a{2} は "aa" に一致します。
- エスケープ文字:バックスラッシュ を使用してメタ文字をエスケープし、特別な意味を失わせます。たとえば、. はピリオドに一致します。
- g:グローバルマッチ。
- i:大文字と小文字を区別しません。
- m:複数行マッチ。
- s:単一行マッチ。
- u:Unicodeマッチ。
いくつかの使用法
- 数字に一致:d
- 非数字に一致:D
- 空白文字に一致:s
- 非空白文字に一致:S
- 単語文字に一致:w
- 非単語文字に一致:W
- 改行に一致:
- タブに一致:
- キャリッジリターンに一致:
- 任意の文字に一致:sS
- 任意の文字に一致:wW
- 任意の文字に一致:dD
- 任意の文字に一致:^
- 中国語の文字に一致:一-龥
- -:範囲を示します。たとえば、0-9 は0から9の数字に一致します。
- ?:非貪欲マッチ。たとえば、a+? は "a" または "aa" に一致します。
- (?=exp):肯定の先読み。exp の前の位置に一致します。
- (?!exp):否定の先読み。exp の後に続かない位置に一致します。
- (?<=exp):肯定の後読み。exp の後の位置に一致します。
- (?<!exp):否定の後読み。exp の前に続かない位置に一致します。
- :単語の境界に一致します。
- B:非単語の境界に一致します。
- x|y:x または y に一致します。