Regexチートシート/基本
正規表現(regexまたはregexp)は、テキスト内の特定のパターンを識別するための非常に便利なツールであり、テキストの形式に関係なく情報を抽出するのに役立ちます。
正規表現は、入力の検証、Webスクレイピング、ドキュメント内の特定の文字列の検索、コンパイラの構文検証、およびその他の多くの例に使用できます。
正規表現は、ほぼ同じ構文を使用する複数のプログラミング言語で広く使用されているため、この記事では、基本的な正規表現演算子を紹介するふりをしています。
次のセクションでは、正規表現に使用されるさまざまな演算子といくつかの例を示します。このページで正規表現の説明を使用して正規表現をテストすることもできます。
使用 | |
---|---|
^ | 文字列の先頭を示します。続く文字で始まる文字列にのみ一致します |
$ | 文字列の終わりを示します。これは、「$」記号の前の文字で終わるすべての文字列と一致します |
abc | 「abc」文字シーケンスを含む文字列と一致します |
いくつかの例は次のとおりです。
説明 | 一致する文字列の例 | |
---|---|---|
^ A | Aで始まるすべての文字列に一致します | 「A nリンゴは木の中にあります」、「 A 新しいレストラン」 |
end $ | 文字の「終了」シーケンスで終わる文字列と一致します | 「終了 」、「終了のふりをしましょう 」 |
^ Hello world $ | 正確な文字列「Helloworld」に一致します | 「Helloworld 」 |
「order」というテキストを含む文字列と一致します | 「私の注文 番号は54インチ |
数量詞は、前の文字または文字のグループを試合に表示する時間を表すために使用されます。
使用 | |
---|---|
* | ゼロ以上を示します |
+ | もう1つの鉱石を示します |
? | 0または1を示します |
x {n} | 前の文字(「x」)が表示される回数(「n」)を指定するために使用されます |
x {n、} | 前の文字(「x」)が表示される最小回数(「n」)を指定するために使用されます |
x {n、m} | 前の文字(「x」)が表示される最小(「n」)および最大(「m」)回数を指定するために使用されます |
いくつかの例は次のとおりです。
説明 | 一致する文字列の例 | |
---|---|---|
こんにちは!* | 任意の文字列「hello」の後に0個以上の「!」文字が続くものと一致します | 「こんにちは 」、「こんにちは! 」、こんにちは!! |
こんにちは!+ | 任意の文字列「hello」とそれに続く1つ以上の「!」文字に一致します | 「こんにちは! 」、「こんにちは!! 」 |
こんにちは!? | 任意の文字列「hello」の後に0個または1個の「!」文字が続くものと一致します | 「こんにちは 」、「こんにちは! 」 |
(ha){2,4} | 文字のグループ「ha」を2〜4回繰り返す任意の文字列に一致します | 「はは 」、「ははは 」、「はははは 」 |
OR演算子
使用 | |
---|---|
a | b | 「a」または「b」のいずれかを含むすべての文字列に一致します |
[] | リストを表すために使用されるため、リスト内の文字の1つを含む文字列と一致します |
いくつかの例は次のとおりです。
説明 | 一致する文字列の例 | |
---|---|---|
se(a | e) | テキスト「se」の後に「a」または「e」が続く文字列と一致します | 「参照 」、「海 」 |
a [bcd] | 「a」の後に「b」、「c」、または「d」のいずれかが続く文字列と一致します | 「ab 」、「 ac 」、「広告 」 |
文字クラス演算子を使用すると、カテゴリ(クラス)内の文字を照合できます。これらの演算子は、通常の演算子と同じですが大文字の否定を提供します。
使用 | |
---|---|
\ d | 単一の数字に一致します キャラクター |
\ w | 単一の単語に一致します 文字(文字、数字、アンダースコア) |
\ s | 単一の空白に一致します タブや改行を含む文字 |
\ D | 単一の数字以外に一致します キャラクター |
\ W | 単一の非単語に一致します 文字(文字、数字、アンダースコア) |
\ S | 単一の非空白に一致します タブや改行を含む文字 |
。 | 任意の1文字に一致します |
正規表現は通常、/pattern/
の形式を使用します 。最後に、次のフラグを使用できます。
説明 | |
---|---|
g | グローバル フラグは、文字列内のすべての個々の一致を検索するために使用されます。使用されていない場合、式は最初の一致後に返されます |
m | マルチライン フラグを使用すると、^ を使用できます および$ 複数の行を含めることができる文字列の開始と終了ではなく、行の開始と終了として |
i | 鈍感 フラグを使用すると、正規表現で大文字と小文字が区別されなくなります |
正規表現には多くの用途があります。この記事で説明されている単純な演算子を組み合わせて、複雑なパターン検索を作成できます。 1つの例は、電子メールアドレスを検証することです。これは、次の正規表現を使用して行うことができます。
^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$
この例は、次の順序でパターンを検索する完全な文字列と一致します。
-
[\w-\.]+
:1つ以上の単語文字、ハイフン、またはドットの組み合わせ -
@
:@記号 -
([\w-]+\.)+
:ドットで終わる1つ以上の単語文字またはハイフンの1つ以上の組み合わせ(email.rackspaceなどの電子メールのドメインおよびサブドメインの場合) -
[\w-]{2,4}
:メール(com)の最後の部分の2、3、または4語の文字またはハイフンの組み合わせ
この例のように、さまざまな目的で簡単に実装できる他の多くの例があります。