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

削除された内容 追加された内容
Dexbot (トーク | 投稿記録)
M Bot: removing existed iw links in Wikidata
タグ: 置換
1 行
* [ [物理学的计算机和开源#正则表达式] ] { { default sort:category :计算机语言] ] [ [ category :计算机科学] ] { { stub } }
<small>{{Pathnav|工学|情報技術|プログラミング}}</small>
{{Wikipedia|正規表現}}
正規表現 (regular expression) とは文字列の集合を表現するための[[形式言語]]である。たとえば数字の並びで構成される文字列、空白文字から構成される文字列、メールアドレスの形をした文字列など、特定のパターンに一致する文字列を抽出したり、検索したりするのに用いられる。
 
== 概要 ==
正規表現はさまざまなソフトウェアやプログラミング言語で採用されている。
 
* プログラミング言語
** [[Java]]
** [[JavaScript]]
** [[Perl]]
** [[PHP]]
** [[Python]]
** [[Ruby]]
 
このほかにgrepなどのUNIXコマンドラインプログラム、sed、awkなどのスクリプト言語、Emacsやvi、そしてedなどのテキストエディタも正規表現をサポートしている。
 
== 文法 ==
ここでは特定のプログラミング言語やソフトウェアによらない基本的な正規表現の文法を大まかに解説し、個々の文法や具体的なパターンマッチの方法については別に扱う。
 
{| class="wikitable"
|+ 正規表現のメタ文字の一覧
! メタ文字
! 解説
|-
| .
| 任意の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</code> は "she" にも "he" にもマッチする。
|-
| []
| ブラケットの中の任意の1文字にマッチする。たとえば <code>[bcl]ook</code> は "book" と "cook" と "look" にマッチする。
|-
| ()
| 正規表現をグループ化する。括弧の中の文字列を1つのかたまりとして扱う。たとえば <code>Wiki(books)?</code> は "Wiki" または "Wikibooks" にマッチする。
|}
 
== 関連書籍 ==
* [[JavaScript/RegExp]]
* [[Perl/正規表現]]
* [[Python#正規表現]]
* [[UNIX/Linux入門#正規表現]]
* [[物理学のための計算機とオープンソース#正規表現]]
 
 
{{DEFAULTSORT:せいきひようけん}}
[[Category:コンピュータ言語]]
[[Category:計算機科学]]
{{stub}}