当ツールで使用可能な正規表現


はじめに

当ツールで使用できる正規表現について紹介します。
当ツールのメイン正規表現エンジンはVBScriptRegExpオブジェクトです。
このエンジンでは対応していない一部の表現は、.NET Frameworkの正規表現エンジンを使用しています。
また、オリジナルの拡張機能の表現もあります。

VBScriptの正規表現
.NET Frameworkの正規表現

基本的にVBScriptのエンジンを使用します。
その上で未対応構文のためにエラーになった場合に、.NET Frameworkのエンジンを使用します。
意図的に.NET Frameworkのエンジンを使用したい場合は、.NET Frameworkモードにします。

.NET Frameworkモード

.NET Frameworkモードの切り替えは右クリックメニューから行います。


.NET Frameworkモードがオンの場合は、.NET Frameworkの正規表現が入力可能な項目に
フォーカスが当たっているときに、緑色になります。


通常モードでは動作しない.NET Frameworkの正規表現も動作するようになります。


通常モードに戻す場合も同様の方法で戻します。


戻りました。


位置マッチング

  • ^ 先頭
    検索パターン ^0
    検索結果 01234567890 1234567890
    先頭の0のみ検索されます。

    検索パターン ^
    置換文字列 =
    置換前 A1+A2 B1*B2
    置換後 =A1+A2 =B1*B2
    先頭に=が付加されます。

  • $ 末尾
    検索パターン 0$
    検索結果 01234567890 1234567890
    末尾の0のみ検索されます。

  • \b 単語境界
    検索パターン \bI\b
    検索結果 I am in Italy.
    Iの単語のみ検索されます。

  • \B 単語境界以外
    検索パターン \Bed\b
    検索結果 I used the education edition.
    edで終わる単語のみ検索されます。

リテラル

  • \n 改行
    検索パターン \n
    検索結果 ABCDE
    FGHIJ
    12345
    改行(改行記号を←で表示することにします)が検索されます。

  • \f フォームフィード

  • \r キャリッジリターン

  • \t 水平タブ

  • \v 垂直タブ

以下の記号はすべて正規表現で特殊な意味を持っています。
これらの文字そのものを表す場合は、その文字の前に\を付けます。
  • \? ?の文字そのもの

  • \* *の文字そのもの

  • \+ +の文字そのもの

  • \. .の文字そのもの

  • \| |の文字そのもの

  • \{ {の文字そのもの

  • \} }の文字そのもの

  • \\ \の文字そのもの

  • \[ [の文字そのもの

  • \] ]の文字そのもの

  • \( (の文字そのもの

  • \) )の文字そのもの

  • \$ $の文字そのもの

検索パターン \.txt
検索結果 test1.txt test2.xls
.txtが検索されます。

その他

  • \xxx 8進数xxxによって表現されるASCII文字

  • \xdd 16進数ddによって表現されるASCII文字

  • \uxxxx UNICODExxxxによって表現されるASCII文字

文字クラス

  • [xyz] 文字セットに含まれている任意の1文字
    検索パターン [12]0
    検索結果 10,11,12,13,14,15 16,17,18,19,20

  • [^xyz] 文字セットに含まれていない任意の1文字
    検索パターン 1[^05]
    検索結果 10,11,12,13,14 15,16,17,18,19

  • . \n以外の任意の1文字
    検索パターン .浦和
    検索結果 北浦和南浦和 浦和、東浦和

  • \w 単語に使用される任意の文字。[a-zA-Z_0-9]と等価。

  • \W 単語に使用される文字以外の任意の文字。[^a-zA-Z_0-9]と等価。

  • \d 任意の数字。[0-9]と等価。

  • \D 任意の数字以外の文字。[^0-9]と等価。

  • \s 任意のスペース文字。[ \t\r\n\v\f]と等価。

  • \S 任意の非スペース文字。[^ \t\r\n\v\f]と等価。

繰り返し

  • {x} x回繰り返し
    検索パターン \d{3}
    検索結果 test001 test15
    3桁の数字を検索

  • {x,} x回以上繰り返し

  • {x,y} x回以上y回以下繰り返し

  • ? 0回以上1回以下繰り返し。{0,1}と等価。

  • * 0回以上繰り返し。{0,}と等価。
    検索パターン plays*
    検索結果 I play baseball. He plays golf.

  • + 1回以上繰り返し。{1,}と等価。
    検索パターン \d+
    検索結果 123,11,A1
    任意の桁の整数を検索

  • ? 繰り返しの後に使用すると最短一致
    検索パターン test\d*?\.txt
    検索結果 test001.txt,test02.txt

    最短一致を使用しないと以下のようになる。
    検索パターン test\d*\.txt
    検索結果 test001.txt,test02.txt

選択とグループ化

  • | 選択
    検索パターン 東京都|神奈川県
    検索結果 東京都江戸川区 神奈川県横浜市
    東京都または神奈川県を検索

  • () グループ化
    検索パターン (東京都)?渋谷区
    検索結果 東京都渋谷区1-2-3 渋谷区1-2-4

  • \n 後方参照。n番目の括弧で囲まれた句
    検索パターン (\d+)\.\1
    検索結果 123.123 12.34,12.12
    整数部分と小数部分が同じ文字列の数値を検索

  • (?:) キャプチャ(後述)しないグループ化
    検索パターン (?:東京都)?渋谷区
    検索結果 東京都渋谷区1-2-3 渋谷区1-2-4

  • (?=) 肯定先読み
    検索パターン 東京都(?=渋谷区)
    検索結果 東京都渋谷区1-2-3 東京都町田市1-2-3
    後ろに渋谷区が続く東京都を検索

  • (?!) 否定先読み
    検索パターン 東京都(?!渋谷区)
    検索結果 東京都渋谷区1-2-3 東京都町田市1-2-3
    後ろに渋谷区が続かない東京都を検索

.NET Framework

  • (?<=) 肯定戻り読み
    検索パターン (?<=東西線)日本橋駅
    検索結果 東西線日本橋駅 銀座線日本橋駅
    前に東西線がある日本橋駅を検索

  • (?<!) 否定戻り読み
    検索パターン (?<!東西線)日本橋駅
    検索結果 東西線日本橋駅 銀座線日本橋駅
    前に東西線がない日本橋駅を検索

  • (?<xxx>) 名前付きグループ

  • \k<xxx> 名前付き後方参照
    検索パターン (?<number>\d+)\.\k<number>
    検索結果 123.123 12.34,12.12
    整数部分と小数部分が同じ文字列の数値を検索

  • (?imnsx-imnsx:) オプション変更グループ

  • (?imnsx-imnsx) オプション変更

    オプション

    • i 大文字と小文字を区別しない
    • m 複数行モード
    • n 明示的なキャプチャのみ
    • s 単一行モード
    • x 空白を無視

  • (?>) 非バックトラッキンググループ

  • (?#) コメント
    検索パターン (?<=地下鉄.*?線).?梅田駅(?#肯定戻り読み)
    検索結果 地下鉄梅田駅 地下鉄御堂筋線梅田駅 地下鉄谷町線東梅田駅
    コメントはパターンに影響を与えません。

その他 拡張機能

  • \Q\E メタ文字のクォート
    検索パターン \Q(03)\E\d{4}-\d{4}
    検索結果 (03)1234-5678
    \Qと\Eの間は特殊文字の\でのエスケープが不要

置換

  • \n 改行 拡張機能
    検索パターン $
    置換文字列 \n
    置換前 A1234←
    B1234
    C1234
    置換後 A1234←
    B1234
     
    C1234
     
    末尾に改行を付加します。

  • $n n番目の括弧で囲まれた句(n番目のキャプチャ)
    検索パターン (\d{4})年(\d{2})月(\d{2})日
    置換文字列 $1/$2/$3
    置換前 2010年05月05日
    置換後 2010/05/05

  • $& パターン全体がマッチした部分

  • $` マッチに先行する部分

  • $' マッチに続く部分

  • $+ 最後の括弧にマッチした部分

  • $_ 入力文字列全体

  • $$ $の文字そのもの

  • ${xxx} 名前付きキャプチャ参照 .NET Framework
    検索パターン (?<year>\d{4})年(?<month>\d{2})月(?<day>\d{2})日
    置換文字列 ${year}/${month}/${day}
    置換前 2010年05月05日
    置換後 2010/05/05

  • 特殊置換 拡張機能

    置換時に単独でしか使用できません。
    • [UPPER] 大文字に変換

    • [LOWER] 小文字に変換

    • [WIDE] 全角に変換

    • [NARROW] 半角に変換


    正規表現検索に戻ります

    トップに戻ります


    お探しの情報は見つかりましたか?
    まだの方はこちらをどうぞ。
    Google

    PageTop