正規表現  正規表現とは、特定の文字列の並びを記号を用いてパターン化する手法です。 ■ 共通 ------------------------------------------------------- 【使用する記号】     .     改行以外の任意の1文字にマッチ  \n    改行にマッチ  (?:.|\n) 改行または任意の1文字にマッチ  \t    水平タブ  \v    垂直タブ  \f    フォームフィード(改ページ)  \r    キャリッジリターン(復帰)  \d    数字[0-9]と同じ  \D    数字以外[^0-9]と同じ  \w    任意のアルファベットと数字にマッチ  \W    アルファベットや数字以外の文字にマッチ  \s    スペースにマッチ  \S    スペース以外にマッチ  \0nn  8進法で表すASCII文字( ex. \033, \040 など )注:0 はゼロ  \xnn  16進法で表すASCII文字 ( ex. \x00:ヌル文字 ,\x1b:ESC , \x22:ダブルクォート「"」, \x27:シングルクォート「'」 など)  \uxxxx  Unicode(UTF-16) xxxx によって表現される文字にマッチ。全角文字にも使用可。       必ず xxxx の部分は4桁。"\u0041" は "A" 、"\u3042" は "あ" にマッチ。 【位置の指定】  ^     行の先頭にマッチ   例: "^あいう" − 行の先頭から"あいう"で始まる  $     行の末尾にマッチ   例: "あいう$" − 行の末尾が"あいう"で終わる                  例: "^あいう$" − 行全体が"あいう"と一致          末尾が改行の場合は改行にマッチするので注意。          文字列の末尾にマッチさせるには、\Z を使用。  \<    単語の先頭部分にマッチ  \>    単語の末尾部分にマッチ  \b    単語と接するスペースにマッチ  \B    単語と接しない(両隣もスペース)スペースにマッチ \A   文字列の最初にマッチ \Z  文字列の最後にマッチ  ^$    空行(行の先頭かつ末尾→改行のみの行) 【反復の指定】  r     正規表現rにマッチ  r?    正規表現rが0回または1回現れるものにマッチ  r*    正規表現rの0回以上の任意の回数繰り返すものにマッチ  r+    正規表現rが1回以上繰り返すものにマッチ  r{n}   正規表現rがn回繰り返すものにマッチ  r{n,}   正規表現rがn回以上繰り返すものにマッチ  r{,m}   正規表現rが0回以上m回以下繰り返すものにマッチ  r{n,m}  正規表現rがn回以上m回以下繰り返すものにマッチ  *?    最短マッチで、0回以上の繰り返し +?  最短マッチで、1回以上の繰り返し r{n}?  正規表現rのn回の最少繰り返し       ? は *、+、?、{} の後につけて最短マッチを表現 【択一文字】  [abc...] 文字abc...中の改行以外の任意の1文字にマッチ          [0-9]   数字1文字          [0-9]+  数字の繰り返し         [a-z]   文字コードがaからzの範囲にある文字1文字にマッチ          [0-9][0-9][0-9][0-9] 数字4文字          [a-zA-Z]       半角アルファベット          ([A-Z][a-z]){2,}   大文字小文字の順で2回以上繰り返されるパターン  [\s ]  半角または全角のスペース1文字にマッチ  [^abc...]  文字abc...以外の改行以外の任意の1文字にマッチ  [^a-z]  文字コードがaからzの範囲以外の1文字にマッチ          [^0-9]  数字以外の文字 【グループ化】 ( )    グループ化する箇所。( )内の文字列がキャッチアップされる。         例:(\d{3})  ab12ef345gh → 345 3個の数字の連続           ^(\d)+   34abcd567efg → 34 先頭から始まる数字の連続 【択一文字列】 (r1|r2)  論理和:正規表現 r1または正規表現r2にマッチ。         例:鈴木(一郎|花子) → 鈴木一郎 または 鈴木花子 にマッチ         【含まない】 (?!r)  特定の文字列が含まれない         例:^(?!.*abc).*$  → abcを含まない文字列 ^:行頭 $:行末         ・マッチする  ab , abz , xyz         ・不一致しない abc , abcabc , abcz ,1abc 【非キャッチアップ】 (?:r1|r2) キャッチアップしない択一文字列         例: 鈴木(?:一郎|花子) → 鈴木一郎 または 鈴木花子 にマッチするが、            一郎 または 花子 をキャッチアップしない         【その他]  メタ文字  上記のように特殊な意味を持つ文字  | . + * ? ^ $ \ [ ] ( )  エスケープ メタ文字を通常の文字として扱うためには「\」記号を前に付けてエスケープ(打ち消す) \ 記号自体を文字として扱う場合も同じく、\\ とする。        \<メタ文字> とすればその文字自身にマッチ ■ 使用例 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■  数字   数字の連続     1234       \d+   4桁の数字で始まる          ^[0-9][0-9][0-9][0-9]  文字   半角英字列     abcd       [a-zA-Z]+   半角・全角英字列  eBacFd     [a-zA-Za-zA-Z]+   全角文字      あいう      [^\x01-\x7E]+   いずれかの文字列           (パナソニック|松下電気|ナショナル)  スペース   半角または全角のスペース       [\s ]  日付   日付形式の取り出し 2014/1/31     \d{4}/\d{1,2}/\d{1,2}   毎月の25日にマッチ 2014/1/25     \d{4}/\d{1,2}/25  ファイル名   URLからファイル名のみ取り出す     [^/]+$ 行末から / 以外の文字列          http://xxx.com/abc.mp3 → abc.mp3   フルパスからファイル名のみ取り出す  [^\\]+$ 行末から \ 以外の文字列    c:\work\abc.doc → abc.doc  リンクアドレス HTMLのLINKアドレス部分だけ抽出     \x22 は「"」                → http://yahoo.co.jp    規定フォーマット   郵便番号(島根県)          (69\d|68\d)-\d{4}   電話番号               \d{2,4}-\d{2,4}-\d{4}   メールアドレス            [\w\d_-]+@[\w\d_-]+\.[\w\d._-]+   URL                  http://[\w\d/%#$&?()~_.=+-]+   HTMLタグ(テーブル)           HTML   リンクURL               [^<>]*?   リンクURL表示文字列          ([^<>]*?)  エスケープ   [ ]で囲まれた文字列         \[.*?\]   ( )で囲まれた文字列         \(.+?\)  改行を含む全ての文字          (?:.|\n)+ ■ ファイル名一括変更(OSが2000/NT以上の場合のみ) 【変数】   $1,$2,$3・・       例: 2010-03-01 を (\d\d\d\d)-(\d\d)-(\d\d)でパターンマッチすると          それぞれ $1←2010 $2←03 $3←01 がセットされる。          よって置換後の文字列を $3-$2-$1 と指定すると、          変換後の値は、01-03-2010 となる。    グループ化によってキャッチアップされた文字列は、( )のマッチ順に、変数 $1,$2 〜 $n に格納される。    (?: ) キャッチアップされないグループ化の場合は、変数には格納されない。