(3)正規表現で使用するオブジェクト
[1]VBScript RegExp オブジェクト
Patternプロパティ
 
正規表現を定義するために使用される文字列
正規表現オブジェクトを使用する前に設定すること
IgnoreCaseプロパティ
 
大文字小文字を区別するかどうかを示す読み取り専用のブール値
デフォルトでは、 False(大文字小文字を区別する)
Globalプロパティ
 
正規表現を文字列内のすべてを対象に検索はTrue
デフォルトでは、 False
Testメソッド
 
正規表現で検索を行う
正規表現がその文字列に対してマッチした場合には Trueを返す
Replaceメソッド
 
 
検索文字列の中で正規表現のマッチに成功すると、そのマッチした
ものを置換文字列に置き換えて、新しい文字列を返す。
マッチするものが見つからな元の検索文字列が返されます。
Executeメソッド
 
 
成功したマッチの Matche オブジェクトを含んでいるMatches
コレクション オブジェクトを返す
(Matches オブジェクトはMatcheオブジェクトの集合体)


[2]VBScript Matches コレクション オブジェクト
Countプロパティ
 
 
 
Matches コレクション内の Matchオブジェクトの個数を返す
これを調べるとマッチングの成功/失敗がわかる
MatchオブジェクトをForステートメントを1個ずつ制御する場合は
最終個数をとして使用でき便利です
Itemプロパティ
 
 
 
Matches(0)・・Matches(n)のようにアクセスすることができ、ランダム
指定してマッチした文字を取り出すこともできるが、For-Next ループ
でMatchesコレクションオブジェクトから Match オブジェクトにインクリ
メンタルにアクセスすることもできます。

[3]VBScript Match オブジェクト
FirstIndex プロパティ
 
元の文字列内のマッチが起こった位置を返します
文字列の最初の位置は 0 から始まります。
Lengthプロパティ
 
マッチした文字列の長さを返す
 
Valueプロパティ
 
マッチした文字列を返します
 



(4)正規表現で使用するパターン
[1]位置マッチング
位置マッチングでは、^ と $ を使って、文字列の始まりまたは終わりを検索することができます。
パターン プロパティを "^バナナ" に設定すると、"バナナを好きです" にはマッチしますが、
"好きな果物はバナナ" にはマッチしません。
シンボル 機能
^
 
 
文字列の先頭にのみマッチします。
(^A は "An A+ for Anita" の最初の "A" にマッチします)
 
$
 
 
文字列の末尾にのみマッチします。
(t$ は "A cat in the hat" の最後の "t" にマッチします)
 
\b
 
 
任意の単語境界にマッチします。
(ly\b は "possibly tomorrow" の "ly" にマッチします)
 

[2]リテラル
リテラルとは、英数字、ASCII、8進文字、16進文字、UNICODE、または特殊なエスケープ文字のことです。
一部の文字は特殊な意味を持っているので、これらの文字を使用するためにはエスケープする
必要があります。正規表現でこの種の特殊文字にマッチさせるためには、文字の前に "\" を置きます。
シンボル 機能
\n  改行にマッチします。
\f  フォーム フィードにマッチします。
\r  キャリッジ リターンにマッチします。
\t  水平タブにマッチします。
\v  垂直タブにマッチします。
\?  ? にマッチします。
\*  * にマッチします。
\+  + にマッチします。
\.  にマッチします。
\|   | にマッチします。
\{   { にマッチします。
\}  } にマッチします。
\\  \ にマッチします。
\[  [ にマッチします。
\]  ] にマッチします。
\(   ( にマッチします。
\)   ) にマッチします。

\xxx
 
 
16進数 xxx によって表現されるASCII文字にマッチします
\x28 は "("、すなわち chr (40) にマッチします
\u00A3 は "£" にマッチします(UNICODE xxxx によって表現されるASCII文字)

[3]文字クラス
文字クラスにより、表現を [] の角括弧で囲むことで、グループのカスタマイズを行うことができます。
[] の中の先頭の文字として^を指定すると、文字クラスの否定形を作ることができます。また、ダッシュ
を使うと文字の範囲を表すことができます。たとえば、正規表現 "[^a-zA-Z0-9]" は英数字以外のすべて
の文字にマッチします。さらに、いくつかの一般的な文字セットが、エスケープに文字を続けたものとし
て定義されています。
シンボル 機能
[xyz]
 
文字セットに含まれている任意の1文字にマッチします。
(xかyかzの何れか1文字に一致)
[^xyz]
 
[^xyz] 文字セットに含まれていない任意の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]と等価。

[4]繰り返し
> 繰り返しにより、正規表現の中の句を複数回検索することができます。繰り返しマッチング
を使うと、正規表現の中で要素が何回繰り返されるかを指定することができます。
シンボル 機能
{x}
 
 
正規表現のちょうど x個の直前の文字にマッチします。
(\d{5} は5桁の数字にマッチします)
 
{x,}
 
 
正規表現のx個以上の直前の文字にマッチします。
(\s{2,} は2個以上のスペース文字にマッチします)
 
{x,y}
 
 
正規表現のx個以上、y個以下の直前の文字にマッチします。
(\d{2,3} は2個以上、3個以下の数字にマッチします)
 
?
 
 
ゼロ個または1個の直前の文字にマッチします。{0,1}と等価。
(a\s?b は "ab" または "a b" にマッチします)
 
*
 
ゼロ個以上の直前の文字にマッチします。{0,}と等価。
 
+
 
1個以上の直前の文字にマッチします。{1,}と等価。
 

[5]選択とグループ化
シンボル 機能
()
 
 
複数の句をグループ化して、1つの句を作成します。ネストすることができます。
"(ab)?(c)" は "abc" または "c" にマッチします。
 
|
 
 
選択は、複数の句を1つの正規表現にまとめ、これらのうちの任意の句にマッチする
"(ab)|(cd)|(ef)" は "ab" または "cd" または "ef" にマッチします。
 




【戻る】    【Top画面】   【HPへ】