すぐ使える!正規表現サンプル集
Google
WWW を検索 hodade.com を検索

      このエントリーをはてなブックマークに追加

正規表現Tips その2


.
改行文字(\r,\n)以外のすべての文字に一致します。

単体でも使えますが、数量子(*,+,?,{n},{n,},{n,m})と組み合わせて使うことが多いです。 .*は文字があるかまたは無限に続く、.+は文字が1文字以上無限に続く、.?は文字があるかまたは無い、.{5}は5文字の文字、.{2,}は2文字以上の文字、.{2,6}は2文字以上6文字以内の文字にそれぞれ一致します。


[ ]
文字クラスといい、[ ]内のいずれかの文字を表します。

[ABC]だとA,B,Cの何れか1文字です。[ ]内にはほぼなんでも組み合わせて指定できます。\d,\s,\wなども可能です。 -を使うと範囲を指定でき、[A-D]だとA,B,C,D、[0-5]だと0,1,2,3,4,5を表します。こちらも組み合わせて[A-D0-5]のように使えます。 [ ]に一致する文字は1文字のみです。よって数量子(*,+,?,{n},{n,},{n,m})と組み合わせて使い、複数文字に一致するように仕向けることが多いです。


( )
グループ化と後方参照の二つの意味を持ちます。
まずはグループ化について説明します。

グループ化は文字列を1つのグループとして、数量指定や選択ができます。
(ABC){2} とすると、ABCABC に一致、A(01|02) とすると A01 または A02 に一致となります。


( )
グループ化と後方参照の二つの意味を持ちます。
今回は後方参照について説明します。

後方参照とは、( ) で囲んだ部分に一致した文字列を、後から参照できるという意味です。
主に置換のときに使います。置換対象:(A)(B)、置換後:\2\1 とすると、AB が BA に置換されます。
このように、かっこの数に対応して \1,\2 ... で参照できます。


|
選択といい、「または」の意味を持つ正規表現です。

AAA|BBB|CCC とすると、AAA または BBB または CCC に一致します。
グループ化と併用して、(CD|DVD)-(RW|R) とすると、CD-R,CD-RW,DVD-R,DVD-RW に一致します。


\b
単語の境界を表す正規表現です。

境界とは、\w と \W の境目、つまり英数字("_"も含む) とそれ以外の文字の部分をいいます。
"FILENAME" と "FILE " という単語があった場合、普通に FILE で検索するとどちらも一致しますが、FILE\b とすると FILE のみ一致します。
このように、本当に検索したい単語以外にも一致してしまう場合に有効です。


\d+/\d+/\d+
日付を表す文字列に一致する正規表現です。

2005/12/07 などに一致します。


^\s+
行頭の空白を表す正規表現です。

これを置換対象にすると、インデント(空白またはタブによる字下げ)を削除したりできます。


\s+$
行末の空白を表す正規表現です。

これを置換対象にすると、行末の空白またはタブ文字を削除できます。


\
エスケープ文字です。正規表現において意味を持つ記号を、意味のない普通の文字として扱うようにします。

\^ は ^ に一致、 \$ は $ に一致、 \\ は \ に一致します。


\x41
16進数で文字を表します。\x41 は英字の A です。

制御文字を表す場合などに使用します。
\x00 から \x1F、と 0x7F が制御文字となっており、文字として目に見えないが、意味を持つ文字です。
よく使うものでは、改行コード があります。


[\x20-\x7E]
すべてのASCII文字に一致する正規表現です。

すべてとは・・・
  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ / ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ です。(先頭には半角スペースがあります)


[\xA1-\xDF]
半角カタカナに一致する正規表現です。

半角カタカナとは・・・
。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゛ ゜ です。
ただしこれは、文字コードが Shift-JIS の場合です。


abc(?!def)
abc の後に def が来ない abc に一致します。

(?! ) は前方参照否定位置指定子と言います。名前は難しいですが動作は単純です。
これは Version8 正規表現の拡張機能であるため、使えないエディタもあると思います。


abc[^0-9]+
ABCの後に数字が来ないABCを表します。abcxyz には一致、abc123 には一致しません。

[ ] 内の ^ は否定を表します。また [ ] は、中に書かれた文字のいずれか1文字を表します。





小数を検索する正規表現もあります。

1.正規表現とはなにか?
正規表現を簡単に説明すると?

2.正規表現を使う準備
まずはエディタの設定

3.正規表現サンプル集
【検索編】

検索で使える正規表現

4.正規表現サンプル集
【置換編】

置換で使える正規表現

5.正規表現のお勉強
正規表現で検索
少し高度な検索
文字列置換
最短一致について
エスケープ文字のこと
上から順番にだんだん難しくなります

6.エディタの強調表示でテキストに色づけ
色つきで見やすくできます

7.プログラムで正規表現を使う
各種プログラム言語でも使えます

8.ナイスな記事集
ここよりスゴイ正規表現がある


Since 2005.09.30 / HODADE SYSTEMS / Update 2015.01.03