正規表現の文法クイックリファレンス

正規表現は、テキストパターンを指定するためのツールであり、通常はテキストの検索、置換、および制御に使用されます。主にaからzの文字およびいくつかの特殊なメタキャラクターを含みます。正規表現は非常に広範囲にわたって利用されており、最初はUnixで普及しましたが、後にScala、PHP、C#、Java、C++、Objective-c、Perl、Swift、VBScript、Javascript、Ruby、Pythonなどに広く使用されました。正規表現を学ぶことは、実際には文字列を制御するための簡潔で迅速な方法によって、非常に柔軟な論理思考を学ぶことを意味します。
正規表現キャラクター 説明
\ 次の文字を特殊文字、またはリテラル文字、またはバックリファレンス、または八進数エスケープとしてマークします。例えば、“n"は文字"n"にマッチします。"\n"は改行文字にマッチします。"\\"は"\"にマッチし、"\("は"("にマッチします。
^ 入力文字列の開始位置にマッチします。RegExpオブジェクトのマルチライン属性が設定されている場合、^は“\n"または"\r"の後の位置にもマッチします。
$ 入力文字列の終了位置にマッチします。RegExpオブジェクトのマルチライン属性が設定されている場合、$は“\n"または"\r"の前の位置にもマッチします。
* 前のサブエクスプレッションに0回または多くマッチします。例えば、zo*は“z"および"zoo"にマッチします。*は{0,}に相当します。
+ 前のサブエクスプレッションに1回または多くマッチします。例えば、“zo+"は"zo"および"zoo"にマッチしますが、"z"にはマッチしません。+は{1,}に相当します。
? 前のサブエクスプレッションに0回または1回マッチします。例えば、“do(es)?"は"does"または"does"に含まれる"do"にマッチします。?は{0,1}に相当します。
{n} nは非負整数で、確定したn回にマッチします。例えば、“o{2}"は"Bob"の"o"にマッチせず、"food"内の2つのoにマッチします。
{n,} nは非負整数で、少なくともn回マッチします。例えば、“o{2,}"は"Bob"の"o"にマッチせず、"foooood"内のすべてのoにマッチします。"o{1,}"は"o+"に相当し、"o{0,}"は"o*"に相当します。
{n,m} mnは非負整数で、n<=mです。最小でn回、最大でm回マッチします。例えば、“o{1,3}"は"fooooood"の最初の3つのoにマッチします。"o{0,1}"は"o?"に相当します。カンマと2つの数字の間にはスペースを入れてはいけません。
? この文字が他のいずれかの修飾子(*,+,?,{n},{n,},{n,m})の後に続く場合、マッチングパターンは非貪欲です。非貪欲モードは、できる限り少ないマッチを探しており、デフォルトの貪欲モードは可能な限り多くのマッチを探しています。例えば、文字列“oooo"では、"o+?"は単一の"o"にマッチし、"o+"はすべての"o"にマッチします。
. \n"を除く任意の単一の文字にマッチします。"\n"を含む任意の文字にマッチするには、"(.|\n)"のパターンを使用してください。
(pattern) patternにマッチし、このマッチを取得します。取得されたマッチは、生成されたMatchesコレクションから取得でき、VBScriptではSubMatchesコレクションを使用し、JScriptでは$0…$9プロパティを使用します。丸括弧の文字にマッチするには、“\("や"\)"を使用します。
(?:pattern) patternにマッチしますが、マッチ結果を取得しません。つまり、非取得マッチであり、後で使用するために保存されません。例えば、"industr(?:y|ies)"は"industry|industries"より短く表現したものです。
(?=pattern) 順方向の確認の先読みであり、任意のマッチするpatternの文字列の開始でマッチします。これは非取得マッチであり、このマッチは後で使用するために取得する必要ありません。例えば、“Windows(?=95|98|NT|2000)"は"Windows2000"の"Windows"にマッチしますが、"Windows3.1"の"Windows"にはマッチしません。先読みは文字を消耗せず、マッチが発生した後に最後のマッチの後で次のマッチの検索をすぐに開始します。
(?!pattern) 順方向の否定の先読みであり、任意のpatternにマッチしない文字列の開始でマッチします。これは非取得マッチであり、このマッチは後で使用するために取得する必要ありません。例えば“Windows(?!95|98|NT|2000)"は"Windows3.1"の"Windows"にマッチしますが、"Windows2000"の"Windows"にはマッチしません。
(?<=pattern) 逆の確認の先読みであり、順方向の確認の先読みと同様ですが方向が逆です。例えば、“(?<=95|98|NT|2000)Windows"は"2000Windows"の"Windows"にマッチしますが、"3.1Windows"の"Windows"にはマッチしません。
(?<!pattern) 逆の否定の先読みであり、順方向の否定の先読みと同様ですが方向が逆です。例えば“(?<!95|98|NT|2000)Windows"は"3.1Windows"の"Windows"にマッチしますが、"2000Windows"の"Windows"にはマッチしません。
x|y xまたはyにマッチします。例えば、“z|food"は"z"または"food"にマッチします。"(z|f)ood"は"zood"または"food"にマッチします。
[xyz] キャラクターセットです。括弧内の任意の文字にマッチします。例えば、“[abc]"は"plain"における"a"にマッチします。
[^xyz] 負のキャラクターセットです。含まれていない任意の文字にマッチします。例えば、“[^abc]"は"plain"における"p"にマッチします。
[a-z] 文字の範囲です。指定された範囲内の任意の文字にマッチします。例えば、“[a-z]"は"a"から"z"の範囲内の任意の小文字の文字にマッチします。
[^a-z] 負の文字の範囲です。指定された範囲外の任意の文字にマッチします。例えば、“[^a-z]"は"a"から"z"の範囲外の任意の文字にマッチします。
\b 単語の境界をマッチします、つまり単語と空白の間の位置です。例えば、“er\b"は"never"の"er"にマッチしますが、"verb"の"er"にはマッチしません。
\B 非単語境界にマッチします。“er\B"は"verb"の"er"にマッチしますが、"never"の"er"にはマッチしません。
\cx xによって指定された制御文字にマッチします。例えば、\cMはControl-Mまたはキャリッジリターンにマッチします。xの値はA-Zまたはa-zのいずれかでなければなりません。そうでなければ、cはリテラルの“c"文字として扱われます。
\d 数字文字にマッチします。[0-9]に相当します。
\D 非数字文字にマッチします。[^0-9]に相当します。
\f ページフィードにマッチします。\x0cおよび\cLに相当します。
\n 改行にマッチします。\x0aおよび\cJに相当します。
\r キャリッジリターンにマッチします。\x0dおよび\cMに相当します。
\s 任意の空白文字にマッチします。空白、タブ、ページフィードなどを含みます。[ \f\n\r\t\v]に相当します。
\S 任意の非空白文字にマッチします。[^ \f\n\r\t\v]に相当します。
\t タブにマッチします。\x09および\cIに相当します。
\v 縦タブにマッチします。\x0bおよび\cKに相当します。
\w アンダースコアを含む任意の単語文字にマッチします。“[A-Za-z0-9_]"に相当します。
\W 任意の非単語文字にマッチします。“[^A-Za-z0-9_]"に相当します。
\xn nにマッチし、nは16進数エスケープ値です。16進数エスケープ値は特定の2桁の数字でなければなりません。例えば、“\x41"は"A"にマッチします。"\x041"は"\x04&1"に相当します。正規表現ではASCIIエンコードが使用できます。
\num numにマッチします。numは正の整数です。取得されたマッチへの参照です。例えば、“(.)\1"は連続する2つの同じ文字にマッチします。
\n 八進数エスケープ値またはバックリファレンスを示します。\nの前に少なくともn個の取得されたサブエクスプレッションがある場合、nはバックリファレンスです。そうでなければ、nは八進数の数字(0-7)です。
\nm 八進数エスケープ値またはバックリファレンスを指定します。\nmの前に少なくともnm個の取得されたサブエクスプレッションがある場合、nmはバックリファレンスです。\nmの前に少なくともn個の取得がある場合、nは文字mの後のバックリファレンスです。前の条件が満たされない場合、もしnmがともに八進数の数字(0-7)である場合、\nmは八進数エスケープ値nmにマッチします。
\nml nが八進数の数字(0-3)で、mlがともに八進数の数字(0-7)である場合、八進数エスケープ値nmlをマッチします。
\un nにマッチし、nは4桁の16進数で表されたUnicode文字です。例えば、\u00A9は著作権記号(©)にマッチします。
よく使われる正規表現
ユーザー名 /^[a-z0-9_-]{3,16}$/
パスワード /^[a-z0-9_-]{6,18}$/
パスワード2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$(数字/大文字/小文字/記号で構成され、すべてが必要です、8文字以上)
16進数値 /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
電子メール /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/または\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ または [a-zA-z]+://[^\s]*
IP アドレス /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ または ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
HTML タグ /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/または<(.*)(.*)>.*<\/\1>|<(.*) \/>
コード/コメントを削除する (?<!http:|\S)//.*$
二バイト文字をマッチする(漢字を含む) [^\x00-\xff]
漢字(文字) [\u4e00-\u9fa5]
Unicode エンコーディングの漢字範囲 /^[\u2E80-\u9FFF]+$/
中国語および全角句読点(文字) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
日付(年-月-日) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
日付(月/日/年) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
時間(時:分、24時間制) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
中国本土の固定電話番号 (\d{4}-|\d{3}-)?(\d{8}|\d{7})
中国本土の携帯電話番号 1\d{10}
中国本土の郵便番号 [1-9]\d{5}
中国本土のID番号(15または18桁) \d{15}(\d\d[0-9xX])?
非負整数(正の整数またはゼロ) \d+
正の整数 [0-9]*[1-9][0-9]*
負の整数 -[0-9]*[1-9][0-9]*
整数 -?\d+
小数 (-?\d+)(\.\d+)?
空白行 \n\s*\r または \n\n(editplus)または ^[\s\S ]*\n
QQ番号 [1-9]\d{4,}
abcを含まない単語 \b((?!abc)\w)+\b
前後の空白文字をマッチする ^\s*|\s*$
編集によく使われるもの
以下は特殊な中国語用の置換(editplus)です
^[0-9].*\n
^[^第].*\n
^[習題].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

正規表現構文快速参照 - よく使われる正規表現テクニックと構文

正規表現は強力なテキスト処理ツールであり、このページではよく使われる正規表現構文快速参照を提供し、正規表現の基本構文、修飾子、サブエクスプレッション、貪欲モードおよび非貪欲モードなどを迅速に理解するのに役立ちます。

正規表現基本構文

正規表現は文字列パターンの規則を記述するために使用され、一般的な基本構文には以下が含まれます:

よく使われる正規表現の修飾子

正規表現の修飾子は、正規表現のマッチングルールを変更するために使用され、一般的な修飾子には以下が含まれます:

貪欲モードと非貪欲モード

正規表現において、数量詞はデフォルトで貪欲です。つまり、できるだけ多くの文字にマッチします。非貪欲モードは、数量詞の後に?を追加することで使用できます。以下はその例です:

サブエクスプレッションとグルーピング

正規表現内のサブエクスプレッションは、括弧(( ))を使用して定義され、マッチの一部を抽出するために一般的に使用されます。グルーピングは「|」シンボルを用いて実現されます。例:

正規表現の迅速なクエリ

以下は一般的に使用される正規表現の迅速なクエリです:

機能 正規表現
数字をマッチする \d
非数字をマッチする \D
文字をマッチする [a-zA-Z]
任意の文字をマッチする .
空白文字をマッチする \s

正規表現の応用シーン

正規表現は以下のシーンで広く活用されています:

正規表現を学ぶためのヒント

今すぐ私たちの正規表現構文快速参照を使用し、正規表現の作成をより効率的に行い、テキスト処理能力を向上させましょう!

あなたの足跡:
言語を選択