「
正規表現 リファレンス
」を編集中
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
---- <div id="regexp"> ==正規表現== 「正規表現」とは、さまざまな文字列をメタキャラクタと呼ばれる記号を使って表現することをいいます。 ===■ 正規表現 リファレンスでよく出てくる語句=== ・メタキャラクタ(別名:メタ文字) ⇒ メタキャラクタとは、正規表現における特別な意味を持った記号のこと。<br> ・マッチ ⇒ ある文字列が、正規表現によって定義される特定のパターンに一致(合致)すること。<br> ・エスケープ ⇒ メタキャラクタ自体を文字としてマッチさせるために、メタキャラクタの前に「 \ 」を付けてメタキャラクタが持つ意味を無効化すること。<br> <hr /> ===■ メタキャラクタ リファレンス=== <br> ====・メタキャラクタ 一覧表==== <p>正規表現の主なメタキャラクタの一覧表です。 ※各メタキャラクタの詳細については、後述の[解説]を参照してください。(一部、ないものもあります。)</p> <table class="meta-table"> <tr> <th width="110">メタキャラクタ</th> <th>説明</th> </tr> <tr> <td align="center">.</td> <td>任意の1文字にマッチ</td> </tr> <tr> <td align="center">\</td> <td>メタキャラクタの持つ意味を無効化する</td> </tr> <tr> <td align="center">*</td> <td>直前の正規表現と0回以上一致</td> </tr> <tr> <td align="center">^</td> <td>文字列の先頭にマッチ</td> </tr> <tr> <td align="center">$</td> <td>文字列の末尾にマッチ</td> </tr> <tr> <td align="center">[ ]</td> <td>指定された文字の中のいずれかにマッチ</td> </tr> <tr> <td align="center">[^ ]</td> <td>指定された文字以外の文字にマッチ(否定)</td> </tr> <tr> <td align="center">( )</td> <td>部分正規表現のグルーピング</td> </tr> <tr> <td align="center">(?: )</td> <td>部分正規表現のグルーピング(一時記憶なし)</td> </tr> <tr> <td align="center">|</td> <td>左右の正規表現(または文字)のどちらかにマッチ</td> </tr> <tr> <td align="center">{ }</td> <td>直前の正規表現と指定回数一致</td> </tr> <tr> <td align="center">+</td> <td>直前の正規表現と1回以上一致</td> </tr> <tr> <td align="center">?</td> <td>直前の正規表現と0回または1回以上一致</td> </tr> <tr> <td align="center">\d 、 \D</td> <td>任意の数字にマッチ / 数字以外の任意の1文字にマッチ</td> </tr> <tr> <td align="center">\s、\S</td> <td>任意の空白文字にマッチ(タブ、改行も含む。全角空白は含まない) / 空白文字以外の任意の文字にマッチ</td> </tr> <tr> <td align="center">\w、\W</td> <td>アルファベットの大文字・小文字・数字・アンダースコア( _ )にマッチ / アルファベットの大文字・小文字・数字・アンダースコア( _ )以外の文字にマッチ</td> </tr> <tr> <td align="center">\r</td> <td>復帰</td> </tr> <tr> <td align="center">\n</td> <td>改行</td> </tr> <tr> <td align="center">\t</td> <td>水平タブ</td> </tr> <tr> <td align="center">(?! )</td> <td>「?!」の右側に指定した正規表現(または文字)が存在しない場合にマッチ(否定の先読み)</td> </tr> </table> <hr /> ====・任意の一文字に一致==== <p>◆メタキャラクタ⇒ . (ドット)</p> <p class="explanation">[解説] 「.」は、あらゆる文字にマッチするメタキャラクタのこと。「.」1つで1文字を表す。</p> <div class="example"> <dl> <dt>[文例1] 「光画デジタルサプライ」を正規表現でマッチさせる。</dt> <dd> 文字列(例):光画デジタルサプライ</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ ........... (他にも、「光........イ」や「..デジタル....」としても可)</p> </dd><br> <dd> ※「光画デジタルサプライ」は10文字なので、「.」を10個並べることでマッチさせることができる。</dd><br> <dt>[文例2] 文字の「.」(ドット)自体も正規表現でマッチさせる。</dd> <dd> 文字列(例):index.html</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ .....\.....</p> </dd><br> <dd> ※「.」の前に「\」をつける(エスケープ)ことで「.」自体をマッチさせることができる。</dd> </dl> </div> <hr /> ====・直前の正規表現と0回以上一致==== <p>◆メタキャラクタ⇒ * (アスタリスク)</p> <p class="explanation">[解説] 「*」は、「*」の直前に置かれた正規表現を0回以上繰り返すメタキャラクタのこと。</p> <div class="example"> <dl> <dt>[文例] 「人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。」を正規表現でマッチさせる。</dt> <dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ .*</p> </dd><br> <dd> ※「*」の前に「.」を付けることによって、不特定の文字列(任意の一文字を0回以上繰り替えす文字列)に一致させることができる。</dd> </dl> </div> <hr /> ====・直前の正規表現と指定回数一致==== <p>◆メタキャラクタ⇒ { } (中カッコ)</p> <p class="explanation">[解説] 「 { } 」は、「 { } 」の直前に置かれた正規表現を指定回数繰り返すメタキャラクタのこと。「 { } 」の中には数字(指定回数)が入ります。</p> <div class="example"> <dl> <dt>[文例] ある文字列の中で、複数回繰り返されている特定の文字を正規表現を使って一致させる。</dt><br> <dd> 文字列(例):人気のラムカン・ダムールにタカシマヤタカシマヤ限定のローズピンクが新登場。</dd> <dd> 特定の文字:タカシマヤタカシマヤ</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ (タカシマヤ){2}</p> </dd> </dl> </div> <hr /> ====・グループ化と一時記憶==== <p>◆メタキャラクタ⇒ ( ) (半角カッコ)</p> <p class="explanation">[解説] 「 ( 」と「 ) 」で囲われた部分をグループ化し、グループ化した内容を一時的に記憶させることができるメタキャラクタのこと。</p> <div class="example"> <dl> <dt>[文例] 文字列から特定の文字を正規表現を使って抜き出す。</dt><br> <dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd> <dd> 特定の文字:「タカシマヤ」と「ローズピンク」</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ .*(タカシマヤ).*(ローズピンク).*</p> <p>◎<strong>置換後の指定</strong> ⇒ $1$2</p> <p>◎置換結果 ⇒ タカシマヤローズピンク</p> </dd><br> <dd> ※グループ化された内容は、「$1」で表示させることが可能。「( )」の数によって$1、$2、$3...と増えていく。一時記憶させたくない場合は、「 ( 」を「 (?: 」とするとよい。 </dd> </dl> </div> <hr /> ====・文字列の先頭に一致==== <p>◆メタキャラクタ⇒ ^ (キャレット)</p> <p class="explanation">[解説] 文字列の先頭を表すメタキャラクタのこと。</p> <div class="example"> <dl> <dt>[文例] 特定の文字から始まる文字列を、正規表現を使って一致させる。</dt><br> <dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd> <dd> 特定の文字:人気のラムカン・ダムール</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ ^人気のラムカン・ダムール.*</p> </dd> </dl> </div> <hr /> ====・文字列の末尾に一致==== <p>◆メタキャラクタ⇒ $ (ドル)</p> <p class="explanation">[解説] 文字列の末尾を示すメタキャラクタのこと。文字ではなく位置にマッチする。</p> <div class="example"> <dl> <dt>[文例] 末尾に特定の文字が付く文字列を、正規表現で一致させる</dt><br> <dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd> <dd> 特定の文字:新登場。</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ .*新登場。$</p> </dd> </dl> </div> <hr /> ====・指定された文字のいずれかにマッチ==== <p>◆メタキャラクタ⇒ [ ] (大カッコ)</p> <p class="explanation">[解説] 「 [ 」と「 ] 」で囲われた文字の中のいずれかにマッチするメタキャラクタのこと。</p> <div class="example"> <dl> <dt>[文例] 商品番号「232545」から「232549」までを正規表現で一致させる。</dt><br> <dd> 文字列(例):232543,232544,232545,232546,232547,232548,232549,232550,232551,232552</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ 23254[5-9]</p> </dd><br> <dd>※「 [ ] 」の中に2つ数字を入れ、数字と数字の間に「 - (ハイフン)」を入れることで「例:[5-9]」は「5」または「6」または「7」または「8」または「9」という意味になる。</dd><br> </dl> </div> <hr /> ====・指定された文字以外の文字にマッチ(否定)==== <p>◆メタキャラクタ⇒ [^ ] (大カッコ + キャレット)</p> <p class="explanation">[解説] 「 [ 」のすぐ後に「 ^ 」を入れることで、「 [ ] 」の中に指定した文字<strong>以外</strong>の文字にマッチすることができます。これを「否定」といいます。</p> <div class="example"> <dl> <dt>[文例] 特定の文字<strong>以外</strong>の文字を正規表現で一致させる。</dt><br> <dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。</dd> <dd> 特定の文字:タカシマヤ限定</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ [^タカシマヤ限定]</p> </dd><br> <dd> ※否定では、「 [ ] 」の中に記述されている文字の1文字ずつ(「タ」「カ」「シ」「マ」「ヤ」「限」「定」)を精査します。そのため、必ずしも連続した文字列のみにマッチするわけではありません。今回の例文の場合、「タカシマヤ限定」で使っているそれぞれの文字が他でも使われていると、その文字も否定される(マッチしない)ことになります。 </dd> </dl> </div> <hr /> ====・2つの正規表現のどちらかにマッチ==== <p>◆メタキャラクタ⇒ | (パイプ)</p> <p class="explanation">[解説] 正規表現(または文字)の選択を表すメタキャラクタのこと。「 | 」の両側に置かれた正規表現(または文字)のどちらかにマッチさせたい場合に使います。</p> <div class="example"> <dl> <dt>[文例] 「たかしまや、タカシマヤ、髙島屋、takashimaya、TAKASHIMAYA」を「高島屋」に置換する。</dt><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ たかしまや|タカシマヤ|髙島屋|takashimaya|TAKASHIMAYA</p> <p>◎<strong>置換後の指定</strong>⇒ 高島屋</p> </dd> </dl> </div> <hr /> ====・任煮の数字に一致==== <p>◆メタキャラクタ⇒ \d (エンマーク + 半角小文字 d)</p> <p class="explanation">[解説] 0から9までの任意の数字1文字にマッチするメタキャラクタのこと。</p> <div class="example"> <dl> <dt>[文例] ある文字列内にある6桁の数字を正規表現を使って一致させる。</dt><br> <dd> 文字列(例):人気のラムカン・ダムールにタカシマヤ限定のローズピンク(商品番号:232551)が新登場。</dd> <dd> 特定の文字:232551</dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ \d{6} (「\d\d\d\d\d\d」でも可)</p> </dd> </dl> </div> <hr /> ====・各種の制御文字に一致==== <p>◆メタキャラクタ⇒ \r (エンマーク + 半角小文字 r)、 \n (エンマーク + 半角小文字 n)、 \t (エンマーク + 半角小文字 t)</p> <p class="explanation">[解説] 「\r」は復帰(CR)、「\n」は改行(LF)、「\t」は水平タブを表す。</p> <div class="example"> <dl> <dt>[文例] ある複数の文字列から、水平タブと復帰、改行を取り除く。</dt><br> <dd> 文字列(例):<br> 【タカシマヤ限定ローズピンク】オーブンに使えて、サラダからデザートまで多彩に活躍します。 <pre style="margin:0;"> 一人前の前菜やサラダ、ソースや薬味、デザートなどの盛り付けにぴったりです。</pre> </dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ \t|\r\n</p> </dd><br> <dd>※サクラエディタで改行に完全にマッチさせるには、「\r\n」とする必要があります。</dd> <!--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">[解説] 「 *? 」は「 * 」と同じように直前の正規表現を0回以上繰り返すメタキャラクタです。しかし、「 *? 」は「 * 」と違い「できる限り短くマッチさせる」ように振舞います。逆に「 * 」は「できるかぎり長くマッチさせる」ように振舞います。</p> <div class="example"> <dl> <dt>[文例] リンクのみを置換する。</dt><br> <dd> 文字列(例):<pre style="margin:0;"><a href="/shopping/summergift/index.html"><img src="banner/main_bnr_s080730_summergift.jpg" width="272" height="87" ...(以下、略)</pre></dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ href="(.*?)"</p> <p>◎<strong>置換後の指定</strong> ⇒ href="http://www.takashimaya.co.jp$1"</p> </dd><br> <dd> ※置換前の指定で「href="(.*)"」とした場合、href=""より後にも「 " 」が存在(例:src="")するため意図したようにマッチしません。「href="(.*)"」であれば、「 " 」の後で最初の「 " 」を発見した時点でマッチをやめます。 </dd> </dl> </div> <hr /> ====・否定の先読み==== <p>◆メタキャラクタ⇒ (?!正規表現) (半角カッコ + クエスチョンマーク + エクスクラメーションマーク + 正規表現(または文字) + 半角カッコ)</p> <p class="explanation">[解説] 「 (?!正規表現) 」とは、指定した「正規表現(または文字)」が存在しない場合にマッチするメタキャラクタのこと。</p> <div class="example"> <dl> <dt>[文例] 「タカシマヤ限定」の文字が存在しない文字列を正規表現で一致させる。</dt><br> <dd> 文字列(例): <pre style="margin:0;">人気のラムカン・ダムールにタカシマヤ限定のローズピンクが新登場。 一人前の前菜やサラダ、ソースや薬味、デザートなどの盛り付けにぴったりです。かわいいハート型は、小物入れにしても素敵です。</pre> </dd><br> <dd class="specify"> <p>◎<strong>置換前の指定</strong> ⇒ ^((?:(?!タカシマヤ限定).)*)\r\n</p> </dd><br> <dd> ※一時記憶した内容は、$1で参照可能です。今回の場合は、「一人前の前菜や」から「素敵です。」までが一時記憶されています。 </dd> </dl> </div> <hr /> <br> ===■ 目的別逆引き リファレンス=== <hr /> <br> ==サクラエディタの正規表現== サクラエディタで正規表現を使用する際は、必ず「正規表現」にチェックを入れてください。 <br><br> [[画像:サクラ置換.png]] </div>
編集内容の要約:
Wiki@KDSへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
Wiki@KDS:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
キャンセル
編集の仕方
(新しいウィンドウで開きます)
案内メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWikiについてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報