logo

Regex チュートリアル – 正規表現の書き方?

正規表現 (regex) は、検索パターンを定義する一連の文字です。正規表現の書き方は次のとおりです。

  1. まずは、正規表現で使用される .、*、+、? などの特殊文字を理解することから始めます。
  2. Python、Perl、grep などの正規表現をサポートするプログラミング言語またはツールを選択します。
  3. 特殊文字とリテラル文字を使用してパターンを記述します。
  4. 適切な関数またはメソッドを使用して、文字列内のパターンを検索します。

例:

  1. 一連のリテラル文字と一致させるには、パターン内にそれらの文字を書き込むだけです。
  2. 一連の可能性の中から 1 つの文字を一致させるには、角かっこを使用します。 [0123456789] は任意の数字と一致します。
  3. 前述の式の 0 個以上の出現に一致するには、星印 (*) 記号を使用します。
  4. 前述の式の 1 つ以上の出現に一致するには、プラス (+) 記号を使用します。
  5. 正規表現は複雑で読みにくい場合があることに注意することが重要です。そのため、正規表現テスターなどのツールを使用してパターンをデバッグし、最適化することをお勧めします。

正規表現 (有理式とも呼ばれる) は、検索パターンを定義する一連の文字であり、主に文字列とのパターン マッチングや文字列マッチング、つまり検索と置換のような操作に使用されます。正規表現は、パターンと一連の文字を照合する一般的な方法です。 C++、Java、Python などのあらゆるプログラミング言語で使用されます。



正規表現とは何ですか?また、正規表現がそれほど重要である理由は何ですか?

正規表現が使用されるのは、 グーグルアナリティクス URL マッチング、Sublime、Notepad++、Brackets、Google Docs、Microsoft Word などの最も一般的なエディターでの検索と置換のサポート。

  Example :    Regular expression for an email address : ^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$>

上記の正規表現は、特定の文字セットが電子メール アドレスであるかどうかを確認するために使用できます。

正規表現はどうやって書けばいいのでしょうか?

以下に示すように、正規表現を記述するために使用される特定の要素があります。



アルファベット番号は何ですか

1. リピーター ( *、+、{ } )

これらの記号はリピーターとして機能し、前の文字が複数回使用されることをコンピューターに伝えます。

2. アスタリスク記号 ( * )

これは、直前の文字 (または一連の文字) を 0 回以上 (無限まで) 照合するようにコンピューターに指示します。

  Example :   The regular expression ab*c will give ac, abc, abbc, abbbc….and so on>

3. プラス記号 ( + )

これは、コンピュータに、前の文字 (または一連の文字) を少なくとも 1 回以上 (無限まで) 繰り返すように指示します。



  Example :   The regular expression ab+c will give abc, abbc, abbbc, … and so on.>

4. 中括弧 { … }

これは、コンピュータに、前の文字 (または一連の文字) をこの括弧内の値と同じ回数だけ繰り返すように指示します。

  Example :   {2} means that the preceding character is to be repeated 2  times, {min,} means the preceding character is matches min or more  times. {min,max} means that the preceding character is repeated at least min & at most max times.>

5. ワイルドカード ( . )

ドット記号は他の記号の代わりに使用できるため、ワイルドカード文字と呼ばれます。

オペレーティング·システム
  Example :    The Regular expression .* will tell the computer that any character can be used any number of times.>

6. 任意の文字 (?)

この記号は、一致する文字列に前の文字が存在するかどうかをコンピュータに伝えます。

  Example :    We may write the format for document file as – docx? The ‘?’ tells the computer that x may or may not be  present in the name of file format.>

7. キャレット ( ^ ) 記号 ( 試合の設置位置)

キャレット記号は、文字列または行の先頭から一致を開始する必要があることをコンピュータに伝えます。

  Example :   ^d{3} will match with patterns like '901' in '901-333-'.>

8. ドル ( $ ) 記号

Excelの最初の文字を削除する

これは、文字列の末尾、または行または文字列の末尾の の前で一致が発生する必要があることをコンピュータに指示します。

  Example :   -d{3}$ will match with patterns like '-333' in '-901-333'.>

9. 文字クラス

文字クラスは、文字セットのいずれかと一致します。文字、数字、スペース、記号などの言語の最も基本的な要素を照合するために使用されます。

s : スペースやタブなどの任意の空白文字と一致します。
S : 空白以外の文字と一致します。
d : 任意の数字文字と一致します。
D: 数字以外の文字と一致します。
: 任意の単語文字 (基本的には英数字) に一致します。
: 単語以外の文字に一致します。
 : 任意の単語の境界に一致します (スペース、ダッシュ、カンマ、セミコロンなどが含まれます)。
[文字セット]: set_of_characters 内の任意の 1 文字と一致します。デフォルトでは、一致では大文字と小文字が区別されます。

  Example :   [abc] will match characters a,b and c in any string.>

10. [^文字セット] 否定:

set_of_characters にない任意の 1 文字と一致します。デフォルトでは、一致では大文字と小文字が区別されます。

  Example :   [^abc] will match any character except a,b,c .>

11. [最初から最後まで] 文字範囲:

最初から最後までの範囲内の任意の 1 文字と一致します。

Javaオブジェクトからのjson
  Example :   [a-zA-z] will match any character from a to z or A to Z.>

12. エスケープ記号 ( )

実際の「+」、「.」などの文字と一致させたい場合は、その文字の前にバックスラッシュ ( ) を追加します。これにより、次の文字を検索文字として扱い、一致するパターンとして考慮するようにコンピューターに指示されます。

  Example :   d+[+-x*]d+ will match patterns like '2+2' and '3*9' in '(2+2) * 3*9'.>

13. 文字のグループ化 ( )

正規表現のさまざまなシンボルのセットをグループ化して、単一のユニットとして機能し、ブロックとして動作させることができます。そのためには、正規表現を括弧 ( ) で囲む必要があります。

  Example :   ([A-Z]w+) contains two different elements of the regular  expression combined together. This expression will match any pattern  containing uppercase letter followed by any character.>

14. 縦棒( | )

縦棒 (|) 文字で区切られた任意の 1 つの要素と一致します。

  Example :   th(e|is|at) will match words - the, this and that.>

15. 数字

後方参照: 以前に一致した部分式 (キャプチャされた式または丸括弧で囲まれた式) を同じ正規表現内で後で識別できるようにします。 は、n 番目の括弧で囲まれたグループが現在の位置で繰り返されることを意味します。

  Example :   ([a-z])1 will match ee in Geek because the character  at second position is same as character at position 1 of the match.>

16. どうやって ( ?# コメント )

インライン コメント: コメントは最初の閉じ括弧で終了します。

  Example :   A(?#This is an inline comment)w+>

17. # [行末まで]

Xモードのコメント。 コメントはエスケープされていない # で始まり、行の終わりまで続きます。

Javaの選択ソート
  Example :   (?x)Aw+#Matches words starting with A>