正規表現は特に検索に効果を発揮します。大量の文字列の中から特定の文字列を、しかもいくつか検索する際にこの正規表現を使用します。
正規表現はメタ文字という特殊文字を使用します。メタ文字は複数あり、それぞれが特殊な意味を持ちます。メタ文字には以下のようなものがあります。こちらから引用させていただきました。
検索用メタ文字
(?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 件のコメント:
コメントを投稿