「正規表現」の版間の差分

削除された内容 追加された内容
Nermer314 (トーク | 投稿記録)
編集の要約なし
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
21 行
* 1つの位置にある1つまたは複数の文字にマッチさせるための文字セット。
* 文字セットが何回繰り返されるかを指定するための修飾子。
--->
== 文法 ==
ここでは特定のプログラミング言語やソフトウェアによらない基本的な正規表現の文法を解説し、個々の文法や具体的なパターンマッチの方法についてはそれぞれの言語やソフトウェアのページに譲ります。
 
=== POSIX基本正規表現のメタ文字の一覧 ===
{| class="wikitable" style="background:#fff"
 
{| class="wikitable" style="background:#fff"
|+ POSIX基本正規表現のメタ文字の一覧
! メタ文字
! 解説
<!---
|-
! \
| メタ文字の意味を打ち消し、メタ文字自身を表す。
--->
|-
! .
| 任意の1文字にマッチする。たとえば <code>.ook</code> という正規表現は "book" や "cook" などにマッチする。文脈によっては改行文字にマッチする場合もある。
|-
! +
| 直前の文字の1文字以上の繰り返し。たとえば <code>Goo+gle</code> という正規表現は "Google" や "Gooogle"、"Goooooooogle" などにマッチするが、"Gogle" にはマッチしない。
|-
! *
| 直前の正規表現の0回以上の繰り返し。たとえば <code>.*</code> という正規表現は任意の1文字の0文字以上の繰り返しなので、すべての文字列にマッチする。
|-
! +^
! <nowiki>?</nowiki>
| 直前の正規表現の0回または1回の繰り返し。直前の文字があってもなくても行頭にマッチすることを意味する。たとえば <code>s?he^Wikipedia</code> "she" <code>Wikipedia</code> "he" <code>Wikipedia日本語版</code>にマッチするが、<code>日本語版Wikipedia</code>にはマッチしない
|-
! $
| 行末にマッチする。例えば <code>Wikipedia$</code>は<code>Wikipedia</code>と<code>日本語版Wikipedia</code>にマッチするが、<code>Wikipedia日本語版</code>にはマッチしない。
|-
! [string]
57 ⟶ 55行目:
! [^S-E]
| 文字Sから文字Eの間にない任意の1文字にマッチする。
|}
<!---
 
=== POSIX拡張正規表現での追加メタ文字の一覧 ===
 
{| class="wikitable"
|+ POSIX拡張正規表現での追加メタ文字の一覧
! メタ文字
! 解説
|-
! \
! (regexp)
| メタ文字の意味を打ち消し、メタ文字自身を表す。
| 正規表現をグループ化する。括弧の中の文字列を1つのかたまりとして扱う。たとえば <code>Wiki(books)?</code> は "Wiki" または "Wikibooks" にマッチする。
--->
|-
! <nowiki>?</nowiki>
! ^
| 行頭に直前の正規表現の0回または1回の繰り返し。直前の文字があってもなくてもマッチすることを意味する。たとえば <code>^Wikipedias?he</code> <code>Wikipedia</code> "she" <code>Wikipedia日本語版</code> "he" にマッチするが、<code>日本語版Wikipedia</code>にはマッチしない
|-
! $+
| 行末にマッチする直前の文字の1文字以上の繰り返したとえば <code>Wikipedia$Goo+gle</code> という正規表現<code>Wikipedia</code>と<code>日本語版Wikipedia</code> "Google" や "Gooogle"、"Goooooooogle" などにマッチするが、<code>Wikipedia日本語版</code>"Gogle" にはマッチしない。
|-
! regexp1<nowiki>|</nowiki>regexp2
!{m,n}
| regexp1またはregexp2にマッチする。
|直前の正規表現のm回以上n回以下の繰り返し。たとえば、<code>we{2,4}k</code> は "week" "weeek" "weeeek" にマッチする。
|-
! (regexp)
| 正規表現をグループ化する。括弧の中の文字列を1つのかたまりとして扱う。たとえば <code>Wiki(books)?</code> は "Wiki" または "Wikibooks" にマッチする。
|-
!regexp{m,n}
|直前の正規表現regexpのm回以上n回以下の繰り返し。たとえば、<code>we{2,4}k</code> は "week" "weeek" "weeeek" にマッチする。
|}
 
== サポートしているソフトウェア ==
正規表現は、コマンドラインツール、プレーンテキストエディタ、プログラミング言語など、さまざまなソフトウェアツールでサポートされています。
これらのツールのほとんどは、Unix、Linux、Windows、Mac OS Xなどの様々なコンピューティングプラットフォームで利用できます。
これらのツールは、それぞれ微妙に異なる構文を採用しています。いくつかの注目すべきものを見てみましょう。