正規表現は特に検索に効果を発揮します。大量の文字列の中から特定の文字列を、しかもいくつか検索する際にこの正規表現を使用します。
正規表現はメタ文字という特殊文字を使用します。メタ文字は複数あり、それぞれが特殊な意味を持ちます。メタ文字には以下のようなものがあります。こちらから引用させていただきました。
検索用メタ文字
| (?i) | 以降の英字の大文字・小文字を同一視する |
|---|---|
| (?-i) | 以降の英字の大文字・小文字を区別する |
| (~) | ・パターンのグループ ・置換文字列に引用する部分の指定(\1~での部分参照) |
| (?:~) | パターンのグループ |
| ~|~ | |の左右の文字列のいずれか。(~または~) |
| [~] | ~のいずれか1文字 |
| [^~] | ~に含まれない1文字 |
| . | 任意の1文字 |
| * | 直前のパターンの0回以上繰り返し(最長一致) |
| + | 直前のパターンの1回以上繰り返し(最長一致) |
| ? | 直前のパターンの0~1回繰り返し(最長一致) |
| *? | 直前のパターンの0回以上繰り返し(最短一致) |
| +? | 直前のパターンの1回以上繰り返し(最短一致) |
| ?? | 直前のパターンの0~1回繰り返し(最短一致) |
| {min,max} | 直前のパターンのmin回からmax回繰り返し(最長一致) |
| {min,} | 直前のパターンのmin回以上繰り返し(最長一致) |
| {num} | 直前のパターンのnum回繰り返し |
| {min,max}? | 直前のパターンのmin回からmax回繰り返し(最短一致) |
| {min,}? | 直前のパターンのmin回以上繰り返し(最短一致) |
| {num}? | 直前のパターンのnum回繰り返し |
| ^ | 論理行頭 |
| $ | 論理行末 |
| \n | 改行文字 ※CR+LF(制御コード 0x0d+0x0a)とLF(制御コード 0x0a) |
| \t | タブ文字( 制御コード 0x09) |
| \s | 空白文字(半角スペース、\t、\n、\r、\f)すべて |
| \S | 空白文字(半角スペース、\t、\n、\r、\f)以外すべて |
| \x## | 16進数 ※#は0~9、a~f、A~Fのいずれか |
| \b | 語の区切り位置 |
| \B | 語の区切り位置以外 |
| \d | すべての半角数字 |
| \D | 半角数字以外すべて |
| \w | すべての半角英数字とアンダースコア |
| \W | 半角英数字とアンダースコア以外すべて |
| \l | 半角英小文字すべて |
| \L | 半角英小文字以外すべて(英大文字、数字、全角文字などすべて) |
| \u | 半角英大文字すべて |
| \U | 半角英大文字以外すべて(英小文字、数字、全角文字などすべて) |
| \ | 直後のメタ文字をエスケープする |
| \a | アラーム( 制御コード 0x07) |
| \c# | 対応するコントロール文字 ※#はA-Zの半角英字のみ指定可 |
| \e | エスケープ( 制御コード 0x1b) |
| \f | 改ページ( 制御コード 0x0c) |
| \r | リターン(制御コード 0x0d) ※CR+LFのCR部分にはヒットしない |
| \v | 垂直タブ( 制御コード 0x0b) |
| \Q~\E | ~部分に含まれるメタ文字をメタ文字として解釈しない(「\」でエスケープしなくてよい) |
| ・・・(?=~) | 先読み肯定グループ。 後方の文字列が~だった場合の・・・にだけ一致する |
| ・・・(?!~) | 先読み否定グループ。 後方の文字列が~ではない場合の・・・にだけ一致する |
| (?<=~)・・・ | 後読み肯定グループ。 前方の文字列が~だった場合の・・・にだけ一致する |
| (?<!~)・・・ | 後読み否定グループ。 前方の文字列が~ではない場合の・・・にだけ一致する |
置換用メタ文字
※テキストエディタMIFES(マイフェス)とは、メガソフト社が販売しているテキストエディタの一つです。1985年にPC-9800シリーズMS-DOS用(MIFES98)として一般手に広く使用されていました。当時はOSに付属のエディタがどれも貧弱であり、非常に多くのユーザーが利用していました。
| \n | 改行文字(CR+LF) |
|---|---|
| \t | タブ文字(ハードタブ) |
| \s | 半角スペース |
| \xXX | コードXX(16進数2桁)の文字 |
| \0 | 見つけた文字列全体(0は半角数字のゼロ) |
| \N | 検索文字列で指定したN番目の(と)で囲まれたパターンと一致した文字列(部分文字列)を引用する。Nは1~9のいずれか。 |
| \ | 直後のメタ文字をエスケープする(直後の文字を正規表現の記号(メタ文字)として扱わないことを指定) |
※以下は、テキストエディタ MIFESでのみ使用できるメタ文字です。
| \# | 見つけた文字列の論理行番号を表す半角の10進文字列 |
|---|---|
| \$ | 何番目の置換文字列かを表す半角の10進文字列($は半角文字) |
| \$ | 何番目の置換文字列かを表す全角の10進文字列($は全角文字) |
| \@ | 等差数字列の一回出力。 初期値、公差値は等差数字列の【初期化】の設定によります。 |
0 件のコメント:
コメントを投稿