「正規表現 リファレンス」の版間の差分

提供:Wiki@KDS
ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
3行目: 3行目:
==正規表現==
==正規表現==


「正規表現」とは、さまざまな文字列をメタキャラクタと呼ばれる記号を使って表現するための方法のことをいいます。
「正規表現」とは、さまざまな文字列をメタキャラクタと呼ばれる記号を使って表現することをいいます。


===■ 正規表現 リファレンスでよく出てくる語句===
===■ 正規表現 リファレンスでよく出てくる語句===


・メタキャラクタ(別名:メタ文字) ⇒ メタキャラクタとは、正規表現における特別な意味を持った記号のこと。<br>
・メタキャラクタ(別名:メタ文字) ⇒ メタキャラクタとは、正規表現における特別な意味を持った記号のこと。<br>
・マッチ ⇒ ある文字列が、正規表現によって定義される特定のパターンに一致(合致)すること。<br><br>
・マッチ ⇒ ある文字列が、正規表現によって定義される特定のパターンに一致(合致)すること。<br>
・エスケープ ⇒ メタキャラクタ自体を文字としてマッチさせたい場合、メタキャラクタの<br>


<hr />
<hr />
20行目: 21行目:
<div class="example">
<div class="example">
<dl>
<dl>
<dt>[文例] 「光画デジタルサプライ」を正規表現でマッチさせる。</dt>
<dt>[文例1] 「光画デジタルサプライ」を正規表現でマッチさせる。</dt>
<dd> 文字列(例):光画デジタルサプライ</dd><br>
<dd> 文字列(例):光画デジタルサプライ</dd><br>
<dd>◎置換前の指定⇒「...........」 (「光........イ」としても可)</dd><br>
<dd>◎置換前の指定 ⇒ ........... (他にも、「光........イ」や「..デジタル....」としても可)</dd><br>
<dd> ※「光画デジタルサプライ」は10文字なので、「.」を10個並べることでマッチさせることができる。</dd><br>
<dd> ※「光画デジタルサプライ」は10文字なので、「.」を10個並べることでマッチさせることができる。</dd><br>
<dt>[文例(例外)] 文字の「.」(ドット)自体も正規表現でマッチさせる。</dd>
<dt>[文例2] 文字の「.」(ドット)自体も正規表現でマッチさせる。</dd>
<dd> 文字列(例):index.html</dd><br>
<dd> 文字列(例):index.html</dd><br>
<dd>◎置換前の指定⇒「.....\.....</dd><br>
<dd>◎置換前の指定 ⇒ .....\.....</dd><br>
<dd> ※「.」の前に「\」をつけることで「.」自体をマッチすることができる。</dd>
<dd> ※「.」の前に「\」をつけることで「.」自体をマッチすることができる。</dd>
</dl>
</dl>
41行目: 42行目:
<dt>[文例] 「人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。」を正規表現でマッチさせる。</dt>
<dt>[文例] 「人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。」を正規表現でマッチさせる。</dt>
<dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd><br>
<dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd><br>
<dd>◎置換前の指定⇒「.*</dd><br>
<dd>◎置換前の指定 ⇒ .*</dd><br>
<dd> ※「*」の前に「.」を付けることによって、不特定の文字列(任意の一文字を0回以上繰り替えす文字列)に一致させることができる。</dd>
<dd> ※「*」の前に「.」を付けることによって、不特定の文字列(任意の一文字を0回以上繰り替えす文字列)に一致させることができる。</dd>
</dl>
</dl>
72行目: 73行目:
<dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd>
<dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd>
<dd> 特定の文字:「タカシマヤ」と「ローズピンク」</dd><br>
<dd> 特定の文字:「タカシマヤ」と「ローズピンク」</dd><br>
<dd>◎置換前の指定⇒「.*(タカシマヤ).*(ローズピンク).*</dd>
<dd>◎置換前の指定 ⇒ .*(タカシマヤ).*(ローズピンク).*</dd>
<dd>◎置換後の指定⇒「$1$2」</dd>
<dd>◎置換後の指定 ⇒ $1$2</dd>
<dd>◎置換結果⇒「タカシマヤローズピンク」</dd><br>
<dd>◎置換結果 ⇒ タカシマヤローズピンク</dd><br>
<dd> ※グループ化された内容は、「$1」で表示させることが可能。「( )」の数によって$1、$2、$3...と増えていく。</dd>
<dd> ※グループ化された内容は、「$1」で表示させることが可能。「( )」の数によって$1、$2、$3...と増えていく。</dd>
</dl>
</dl>
91行目: 92行目:
<dd> 特定の文字:人気のラムカン・ダムール</dd><br>
<dd> 特定の文字:人気のラムカン・ダムール</dd><br>
<dd>◎置換前の指定 ⇒ ^人気のラムカン・ダムール.*</dd>
<dd>◎置換前の指定 ⇒ ^人気のラムカン・ダムール.*</dd>
</dl>
</div>
<hr />
====・指定された文字のいずれかにマッチ====
<p>◆メタキャラクタ⇒ [ ] (大カッコ)</p>
<p class="explanation">[解説] 「 [ 」と「 ] 」で囲われた文字の中のいずれかにマッチするメタキャラクタのこと。</p>
<div class="example">
<dl>
<dt>[文例1] 商品番号「232545」から「232549」までを正規表現で一致させる。</dt><br>
<dd> 文字列(例):232543,232544,232545,232546,232547,232548,232549,232550,232551,232552</dd><br>
<dd>◎置換前の指定 ⇒ 23254[5-9]</dd><br>
<dd> ※「 [ ] 」の中に2つ数字を入れ、数字と数字の間に「 - (ハイフン)」を入れることで「例:[5-9]」は「5」または「6」または「7」または「8」または「9」という意味になる。</dd><br>
<dt>[文例2] 商品番号「232545」から「232549」<strong>以外</strong>を正規表現で一致させる。</dt><br>
<dd> 文字列(例):232543,232544,232545,232546,232547,232548,232549,232550,232551,232552</dd><br>
<dd>◎置換前の指定 ⇒ 23254[^5-9]</dd><br>
<dd> ※「 [ 」のすぐ後ろに「 ^ 」を入れることで、「 [ ] 」の中に指定した文字<strong>以外</strong>の文字に一致することができる。これを「否定」といいます。</dd>
</dl>
</div>
<hr />
====・2つの正規表現のどちらかにマッチ====
<p>◆メタキャラクタ⇒ | (パイプ)</p>
<p class="explanation">[解説] 正規表現(または文字)の選択を表すメタキャラクタのこと。「 | 」の両側に置かれた正規表現(または文字)のどちらかにマッチさせたい場合に使います。</p>
<div class="example">
<dl>
<dt>[文例] 「たかしまや、タカシマヤ、髙島屋、takashimaya、TAKASHIMAYA」を「高島屋」に置換する。</dt><br>
<dd>◎置換前の指定 ⇒ たかしまや|タカシマヤ|髙島屋|takashimaya|TAKASHIMAYA</dd>
<dd>◎置換後の指定⇒ 高島屋</dd>
</dl>
</dl>
</div>
</div>
98行目: 132行目:
====・任煮の数字に一致====
====・任煮の数字に一致====


<p>◆メタキャラクタ⇒ \d (エンマーク + 半角小文字d)</p>
<p>◆メタキャラクタ⇒ \d (エンマーク + 半角小文字 d)</p>
<p class="explanation">[解説] 0から9までの任意の数字1文字にマッチするメタキャラクタのこと。</p>
<p class="explanation">[解説] 0から9までの任意の数字1文字にマッチするメタキャラクタのこと。</p>
<div class="example">
<div class="example">
123行目: 157行目:
<pre style="margin:0;"> 一人前の前菜やサラダ、ソースや薬味、デザートなどの盛り付けにぴったりです。</pre>
<pre style="margin:0;"> 一人前の前菜やサラダ、ソースや薬味、デザートなどの盛り付けにぴったりです。</pre>
</dd><br>
</dd><br>
<dd>◎置換前の指定 ⇒ \t|\r\n</dd>
<dd>◎置換前の指定 ⇒ \t|\r\n</dd><br>
<dd>
※改行に完全にマッチさせる際に、「\r」を指定する理由 ↓<br>
テキストファイル中で改行を意味する文字コードのことを「改行コード」と呼ぶ。<br>
改行コードにはもともと「CR」(Carriage Return : 行頭復帰)と「LF」(Line Feed : 改行)の2つのコードが存在しており、WindowsではCR+LF、Mac OSではCR、<br>
UNIXではLFが使われている。<br>そのため、Windowsのテキストエディタで改行に完全にマッチさせるには、「\r\n」とする必要がある。
</dd>
</dl>
</div>
 
<hr />
 
====・直前の正規表現と0回以上一致(最短一致)====
 
<p>◆メタキャラクタ⇒ *? (アスタリスク + 半角クエスチョンマーク)</p>
<p class="explanation">[解説] </p>
<div class="example">
<dl>
<dt>[文例] </dt><br>
<dd> 文字列(例):</dd>
<dd> 特定の文字:</dd><br>
<dd>◎置換前の指定 ⇒ </dd>
</dl>
</dl>
</div>
</div>
<hr />




134行目: 196行目:




<hr />
<br>
<br>
===■ 目的別逆引き リファレンス===
===■ 目的別逆引き リファレンス===

2008年8月1日 (金) 20:01時点における版


正規表現

「正規表現」とは、さまざまな文字列をメタキャラクタと呼ばれる記号を使って表現することをいいます。

■ 正規表現 リファレンスでよく出てくる語句

・メタキャラクタ(別名:メタ文字) ⇒ メタキャラクタとは、正規表現における特別な意味を持った記号のこと。
・マッチ ⇒ ある文字列が、正規表現によって定義される特定のパターンに一致(合致)すること。
・エスケープ ⇒ メタキャラクタ自体を文字としてマッチさせたい場合、メタキャラクタの


■ メタキャラクタ リファレンス


・任意の一文字に一致

◆メタキャラクタ⇒ . (ドット)

[解説] 「.」は、あらゆる文字にマッチするメタキャラクタのこと。「.」1つで1文字を表す。

[文例1] 「光画デジタルサプライ」を正規表現でマッチさせる。
 文字列(例):光画デジタルサプライ

◎置換前の指定 ⇒ ........... (他にも、「光........イ」や「..デジタル....」としても可)

 ※「光画デジタルサプライ」は10文字なので、「.」を10個並べることでマッチさせることができる。

[文例2] 文字の「.」(ドット)自体も正規表現でマッチさせる。
 文字列(例):index.html

◎置換前の指定 ⇒ .....\.....

 ※「.」の前に「\」をつけることで「.」自体をマッチすることができる。

・直前の正規表現と0回以上一致

◆メタキャラクタ⇒ * (アスタリスク)

[解説] 「*」は、「*」の直前に置かれた正規表現を0回以上繰り返すメタキャラクタのこと。

[文例] 「人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。」を正規表現でマッチさせる。
 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。

◎置換前の指定 ⇒ .*

 ※「*」の前に「.」を付けることによって、不特定の文字列(任意の一文字を0回以上繰り替えす文字列)に一致させることができる。

・直前の正規表現と指定回数一致

◆メタキャラクタ⇒ { } (中カッコ)

[解説] 「 { } 」は、「 { } 」の直前に置かれた正規表現を指定回数繰り返すメタキャラクタのこと。「 { } 」の中には数字(指定回数)が入ります。

[文例] ある文字列の中で、複数回繰り返されている特定の文字を正規表現を使って一致させる。

 文字列(例):人気のラムカン・ダムールにタカシマヤタカシマヤ限定のローズピンクが新登場。
 特定の文字:タカシマヤタカシマヤ

◎置換前の指定 ⇒ (タカシマヤ){2}

・グループ化と一時記憶

◆メタキャラクタ⇒ ( ) (半角カッコ)

[解説] 「 ( 」と「 ) 」で囲われた部分をグループ化し、グループ化した内容を一時的に記憶させることができるメタキャラクタのこと。

[文例] 文字列から特定の文字を正規表現を使って抜き出す。

 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。
 特定の文字:「タカシマヤ」と「ローズピンク」

◎置換前の指定 ⇒ .*(タカシマヤ).*(ローズピンク).*
◎置換後の指定 ⇒ $1$2
◎置換結果 ⇒ タカシマヤローズピンク

 ※グループ化された内容は、「$1」で表示させることが可能。「( )」の数によって$1、$2、$3...と増えていく。

・文字列の先頭に一致

◆メタキャラクタ⇒ ^ (キャレット)

[解説] 文字列の先頭を表すメタキャラクタのこと。

[文例] 特定の文字から始まる文字列を、正規表現を使って一致させる。

 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。
 特定の文字:人気のラムカン・ダムール

◎置換前の指定 ⇒ ^人気のラムカン・ダムール.*

・指定された文字のいずれかにマッチ

◆メタキャラクタ⇒ [ ] (大カッコ)

[解説] 「 [ 」と「 ] 」で囲われた文字の中のいずれかにマッチするメタキャラクタのこと。

[文例1] 商品番号「232545」から「232549」までを正規表現で一致させる。

 文字列(例):232543,232544,232545,232546,232547,232548,232549,232550,232551,232552

◎置換前の指定 ⇒ 23254[5-9]

 ※「 [ ] 」の中に2つ数字を入れ、数字と数字の間に「 - (ハイフン)」を入れることで「例:[5-9]」は「5」または「6」または「7」または「8」または「9」という意味になる。

[文例2] 商品番号「232545」から「232549」以外を正規表現で一致させる。

 文字列(例):232543,232544,232545,232546,232547,232548,232549,232550,232551,232552

◎置換前の指定 ⇒ 23254[^5-9]

 ※「 [ 」のすぐ後ろに「 ^ 」を入れることで、「 [ ] 」の中に指定した文字以外の文字に一致することができる。これを「否定」といいます。

・2つの正規表現のどちらかにマッチ

◆メタキャラクタ⇒ | (パイプ)

[解説] 正規表現(または文字)の選択を表すメタキャラクタのこと。「 | 」の両側に置かれた正規表現(または文字)のどちらかにマッチさせたい場合に使います。

[文例] 「たかしまや、タカシマヤ、髙島屋、takashimaya、TAKASHIMAYA」を「高島屋」に置換する。

◎置換前の指定 ⇒ たかしまや|タカシマヤ|髙島屋|takashimaya|TAKASHIMAYA
◎置換後の指定⇒ 高島屋

・任煮の数字に一致

◆メタキャラクタ⇒ \d (エンマーク + 半角小文字 d)

[解説] 0から9までの任意の数字1文字にマッチするメタキャラクタのこと。

[文例] ある文字列内にある6桁の数字を正規表現を使って一致させる。

 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンク(商品番号:232551)が新登場。
 特定の文字:232551

◎置換前の指定 ⇒ \d{6} (「\d\d\d\d\d\d」でも可)

・各種の制御文字に一致

◆メタキャラクタ⇒ \r (エンマーク + 半角小文字 r)、 \n (エンマーク + 半角小文字 n)、 \t (エンマーク + 半角小文字 t)

[解説] 「\r」は復帰(CR)、「\n」は改行(LF)、「\t」は水平タブを表す。

[文例] ある複数の文字列から、水平タブと復帰、改行を取り除く。

 文字列(例):【タカシマヤ限定ローズピンク】オーブンに使えて、サラダからデザートまで多彩に活躍します。
		一人前の前菜やサラダ、ソースや薬味、デザートなどの盛り付けにぴったりです。

◎置換前の指定 ⇒ \t|\r\n

※改行に完全にマッチさせる際に、「\r」を指定する理由 ↓
テキストファイル中で改行を意味する文字コードのことを「改行コード」と呼ぶ。
改行コードにはもともと「CR」(Carriage Return : 行頭復帰)と「LF」(Line Feed : 改行)の2つのコードが存在しており、WindowsではCR+LF、Mac OSではCR、
UNIXではLFが使われている。
そのため、Windowsのテキストエディタで改行に完全にマッチさせるには、「\r\n」とする必要がある。

・直前の正規表現と0回以上一致(最短一致)

◆メタキャラクタ⇒ *? (アスタリスク + 半角クエスチョンマーク)

[解説] 

[文例] 

 文字列(例):
 特定の文字:

◎置換前の指定 ⇒








■ 目的別逆引き リファレンス