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

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
M ln
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
コマンドラインツール・プレーンテキストエディタ追加
タグ: 2017年版ソースエディター
1 行
<small>{{Pathnav|工学|情報技術|プログラミング}}</small>
 
{{Wikipedia}}
正規表現 ( ''regular expression'' ) とは文字列の集合を表現するための[[W:形式言語|形式言語]]。非形式的に言うならば、特定のマッチパターンに一致を表現する文字列を抽出したり、検索したり方法でるのに用いられる
正規表現を使うと、テキスト・データ・レコード内の特定のパターンにマッチする文字列を探し出して修正することができ、テキスト・データを操作するユーティリティ・プログラムやプログラミング言語でよく使われます。
正規表現は非常に強力です。
 
<!--
== 概要 ==
=== 応用例 ===
正規表現はさまざまなソフトウェアやプログラミング言語で実装されている。
 
様々なソフトウェア・アプリケーションが、特定のセクション・テキストの検索、選択、修正に正規表現を使用しています。例えば、正規表現を使って次のようなことができます。
* プログラミング言語
** [[Java]]
** [[JavaScript/正規表現|JavaScript]]
** [[Perl/正規表現|Perl]]
** [[PHP]]
** [[Python#正規表現|Python]]
** [[Ruby]]
 
* テキスト全体の「snake」という単語を「serpent」という単語に置き換える。
このほかにgrepなどのUNIXコマンドラインプログラム、sed、awkなどのスクリプト言語、Emacsやvi、そしてedなどのテキストエディタも正規表現をサポートしている。
* 同じ行にある "fox "と "sheep "という単語を含むテキストを探す
 
=== 正規表現の構成要素 ===
しばしば混同されるのですが、シェルなどのワイルドカードとして知られる [[w:グロブ|glob]] とは異なります。
 
正規表現は3種類のコンポーネントで構成されています。
== 学習書を探すなら ==
 
一番手っ取り早いのはまず先に、自身が扱っているプログラミング言語についての本で、正規表現について解説されている本を探すことである。そのような本が存在しない場合は、大体の正規表現の方言の派生元である、Perlの本を読んでも、派生元であるため、そのまま扱えることが多い。
* テキストの行に対するパターンの位置を指定するためのアンカー。
* 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"