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

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎文法: s/文頭/行頭/、s/文末/行末/、POSIX基本正規表現
タグ: 2017年版ソースエディター
Nermer314 (トーク | 投稿記録)
編集の要約なし
2 行
 
{{Wikipedia}}
正規表現( ''regular expression'' )とは、文字列のマッチパターンを表現する方法です。
正規表現を使うと、テキスト・データ・レコード内の特定のパターンにマッチする文字列を探し出して修正することができ、テキスト・データを操作するユーティリティ・プログラムやプログラミング言語でよく使われます。
正規表現は非常に強力です。
21 行
* 1つの位置にある1つまたは複数の文字にマッチさせるための文字セット。
* 文字セットが何回繰り返されるかを指定するための修飾子。
--->== 文法 ==
== サポートしているソフトウェア ==
正規表現は、コマンドラインツール、プレーンテキストエディタ、プログラミング言語など、さまざまなソフトウェアツールでサポートされています。
これらのツールのほとんどは、Linux、Windows、Mac OS Xなどの様々なコンピューティングプラットフォームで利用できます。
これらのツールは、それぞれ微妙に異なる構文を採用しています。いくつかの注目すべきものを見てみましょう。
 
正規表現を使用するツールは以下の通りです。
; コマンドラインツール
: grep
: egrep
: sed
: awk
; プレーンテキストエディタ
: ed
: vi(ex)
: emacs
; プログラミング言語
: [[Java]]
: [[JavaScript/正規表現|JavaScript]]
: [[Perl/正規表現|Perl]]
: [[PHP]]
: [[Python#正規表現|Python]]
: [[Ruby]]
: Tcl
正規表現は、より大きなテキストセットからサブセットを見つけたり、分離したりする小さなコンピュータプログラムと考えることができます。
通常のコンピュータプログラムがそれを実行するためにコンピュータを必要とするのと同じように、正規表現はそれを解釈し、意味を与えるためのソフトウェア・アプリケーションを必要とします。
 
しばしば混同されるのですが、シェルなどのワイルドカードとして知られる [[w:グロブ|glob]] とは異なります。
 
== 文法 ==
ここでは特定のプログラミング言語やソフトウェアによらない基本的な正規表現の文法を解説し、個々の文法や具体的なパターンマッチの方法についてはそれぞれの言語やソフトウェアのページに譲ります。
 
{| class="wikitable" style="background:#fff"
|+ POSIX基本正規表現のメタ文字の一覧
! メタ文字
82 ⟶ 53行目:
|-
! [S-E]
| 文字Sから文字Eの間の任意の1文字にマッチする。たとえば、<code>[A-C]</code> は "A" "B" "C" にマッチする。
|-
! [^S-E]
97 ⟶ 68行目:
! $
| 行末にマッチする。例えば <code>Wikipedia$</code>は<code>Wikipedia</code>と<code>日本語版Wikipedia</code>にマッチするが、<code>Wikipedia日本語版</code>にはマッチしない。
|-
!{m,n}
|直前の正規表現のm回以上n回以下の繰り返し。たとえば、<code>we{2,4}k</code> は "week" "weeek" "weeeek" にマッチする。
|}
== サポートしているソフトウェア ==
正規表現は、コマンドラインツール、プレーンテキストエディタ、プログラミング言語など、さまざまなソフトウェアツールでサポートされています。
これらのツールのほとんどは、Linux、Windows、Mac OS Xなどの様々なコンピューティングプラットフォームで利用できます。
これらのツールは、それぞれ微妙に異なる構文を採用しています。いくつかの注目すべきものを見てみましょう。
 
正規表現を使用するツールは以下の通りです。
; コマンドラインツール
: grep
: egrep
: sed
: awk
; プレーンテキストエディタ
: ed
: vi(ex)
: emacs
; プログラミング言語
: [[Java]]
: [[JavaScript/正規表現|JavaScript]]
: [[Perl/正規表現|Perl]]
: [[PHP]]
: [[Python#正規表現|Python]]
: [[Ruby]]
: Tcl
正規表現は、より大きなテキストセットからサブセットを見つけたり、分離したりする小さなコンピュータプログラムと考えることができます。
通常のコンピュータプログラムがそれを実行するためにコンピュータを必要とするのと同じように、正規表現はそれを解釈し、意味を与えるためのソフトウェア・アプリケーションを必要とします。
 
しばしば混同されるのですが、シェルなどのワイルドカードとして知られる [[w:グロブ|glob]] とは異なります。
 
== 関連書籍 ==