正規表現の難しいメタ文字の使い方
山岸賢治 [著] 2009/05/25 14:00

SourceCode 1.86 KB

 正規表現を初めて使う方を対象に、具体的な検索と置換のサンプルを示しつつ、正規表現を解説していきます。第2回は難しいメタ文字について説明します。

1 2 3 →

はじめに

 正規表現を初めて使う方を対象に、具体的な検索と置換のサンプルを示しつつ、正規表現を解説します。

 正規表現は、実行環境によって多少文法が異なりますが、本連載ではEmEditorの正規表現を使って解説していきます。EmEditorの正規表現の文法は、『EmEditor 使い方: 正規表現構文』を参照してください(Perl準拠です)。

 第2回となる本稿では、難しいメタ文字について解説します。

対象読者

  • 正規表現をはじめて使う方
  • 詳説 正規表現』を、まだ読んだことがない方

必要な環境

 EmEditor Professional Version 6.00.4で動作確認しました。その他、プログラム言語やSQL、テキストエディタなどでも応用できます。

 EmEditorでの正規表現を使う検索の仕方については、第1回を参照してください。

1. 最小マッチ

 量指定子の直後に使用し、マッチ回数が最も少ないマッチを優先するようにします。メタ文字は?です。ものぐさマッチ、控えめなマッチ、欲張りでないマッチとも呼ばれます。

 量指定子で、最小マッチを指定しない正規表現と、最小マッチを指定した正規表現の、検索結果を比較してみましょう。

検索対象
aabbcc
aabbaabbcc
bb
検索で使う正規表現1
^[ab]*[bc]
検索結果1
検索結果1
検索で使う正規表現2
^[ab]*?[bc]
検索結果2
検索結果2
検索で使う正規表現3
^[ab]+[bc]
検索結果3
検索結果3
検索で使う正規表現4
^[ab]+?[bc]
検索結果4
検索結果4
検索で使う正規表現5
^[ab]?[bc]
検索結果5
検索結果5
検索で使う正規表現6
^[ab]??[bc]
検索結果6
検索結果6

 量指定子(範囲指定繰り返し制御)で、最小マッチを指定した正規表現と、最小マッチを指定しない正規表現の、検索結果を比較してみましょう。

検索対象
aabbcc
aabbaabbcc
aabc
aaaab
bb
検索で使う正規表現1
^[ab]{2,}[bc]
検索結果1
検索結果1
検索で使う正規表現2
^[ab]{2,}?[bc]
検索結果2
検索結果2
検索で使う正規表現3
^[ab]{2,4}[bc]
検索結果3
検索結果3
検索で使う正規表現4
^[ab]{2,4}?[bc]
検索結果4
検索結果4

1 2 3
→
INDEX
正規表現の入門(2) 難しいメタ文字
Page1
はじめに
対象読者
必要な環境
1. 最小マッチ
2. 肯定先読み
3. 否定先読み
4. 肯定戻り読み
5. 否定戻り読み
6. キャプチャしない括弧
最後に
参考資料
プロフィール
山岸賢治 ヤマギシケンジ

Oracle ACEの1人。
OracleSQLパズルの運営者。
ORACLE MASTER Silver Oracle Database 10g
(研修受講で)ORACLE MASTER Gold Oracle Database 10g
ソフトウェア開発技術者 (情報処理技術者試験)
第二種情報処理技術者 (情報処理技術者試験)
 


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト