RegExp.Patternパターン プロパティ

本ページには広告が含まれています。

検索・置換で使用する正規表現のパターンを指定します。

構文
  1. RegExp.Pattern = String
引数
戻り値

使い方

正規表現で使用するパターンを指定します。パターンに指定する文字列は正規表現を参考にしてください。指定したパターンの検索を行い結果を取得するにはRegExp.Pattern プロパティを指定したあとにRegExp.Execute メソッド、置換するにはRegExp.Replace メソッド、一致するかのテストを行うにはRegExp.Test メソッドを実行します。

以下はパターンにマッチした文字列を出力するプログラムです。

UWSC
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")

WITH RegExp
	.Pattern = "\d+"
	DIM MatchCollection = .Execute("123,456")
	PRINT MatchCollection.Item(0).Value
ENDWITH
結果
プレーンテキスト
123

よく使うパターン

IPアドレス

0.0.0.0255.255.255.255の範囲にマッチします。

UWSC
(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])
プライベートIPアドレス

プライベートIPアドレスにマッチします。IPアドレスの範囲はIPアドレス - グローバルIPアドレスとプライベートIPアドレスを参考にしています。

クラスA

10.0.0.010.255.255.255の範囲にマッチします。

UWSC
10(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}
クラスB

172.16.0.0172.31.255.255の範囲にマッチします。

UWSC
172\.(1[6-9]|2[0-9]|3[0-1])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){2}
クラスC

192.168.0.0192.168.255.255の範囲にマッチします。

UWSC
192\.168(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){2}
クラスA・クラスB・クラスC

クラスA・クラスB・クラスCのすべてにマッチします。以下の2つはすべてに共通している第4オクテットを共通項として外に出しているかどうかの違いだけで、マッチする値に違いはありません。

UWSC
\b(10(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}|172\.(1[6-9]|2[0-9]|3[0-1])(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){2}|192\.168(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){2})\b
UWSC
\b((10(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){2})|172\.(1[6-9]|2[0-9]|3[01])\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|192\.168\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b

メールアドレス

すべてのメールアドレスにマッチします。

UWSC
\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b
キャリアメール

au(@ezweb.ne.jp)、ドコモ(@docomo.ne.jp)、ソフトバンク(@softbank.ne.jp)のメールアドレスだけにマッチさせるには以下の正規表現を使います。

UWSC
\b[a-zA-Z0-9._%+-]+@(ezweb|docomo|softbank)\.ne\.jp\b

楽天モバイル(@rakumail.jp)も含める場合は以下のようになります。

UWSC
\b[a-zA-Z0-9._%+-]+@((ezweb|docomo|softbank)\.ne|rakumail)\.jp\b

以下にドメインをキャリア毎に分けた正規表現を記載しておきます。

au
  1. @ezweb.ne.jp
  2. @biz.ezweb.ne.jp
  3. @augps.ezweb.ne.jp
  4. @ido.ne.jp
  5. @uqmobile.jp
  6. @au.com
  7. @biz.au.com
UWSC
\b[a-zA-Z0-9._%+-]+@(((((biz|augps)\.)?ezweb|ido)\.ne|uqmobile)\.jp|(biz\.)?au\.com)\b
docomo
  1. @docomo.ne.jp
  2. @mopera.net
UWSC
\b[a-zA-Z0-9._%+-]+@(docomo.ne.jp|mopera.net)\b
SoftBank
  1. @disney.ne.jp
  2. @disneymobile.ne.jp
  3. @i.softbank.jp
  4. @softbank.ne.jp
  5. @vodafone.ne.jp
UWSC
\b[a-zA-Z0-9._%+-]+@((disney(mobile)?\.ne|i\.?softbank|(softbank|vodafone)\.ne)\.jp)\b
Y!mobile(「PHS・旧ウィルコム」以外)
  1. @emnet.ne.jp
  2. @emobile.ne.jp
  3. @emobile-s.ne.jp
  4. @ymobile1.ne.jp
  5. @ymobile.ne.jp
  6. @yahoo.ne.jp
UWSC
\b[a-zA-Z0-9._%+-]+@(emnet|emobile(-s)?|ymobile1?|yahoo)\.ne\.jp\b
Y!mobile(「PHS・旧ウィルコム」)
  1. @pdx.ne.jp
  2. @willcom.com
  3. @wcm.ne.jp
  4. @y-mobile.ne.jp
UWSC
\b[a-zA-Z0-9._%+-]+@((pdx|wcm|y-mobile)\.ne\.jp|willcom\.com)\b
J-PHONE

  1. @jp-c.ne.jp
  2. @jp-d.ne.jp
  3. @jp-h.ne.jp
  4. @jp-k.ne.jp
  5. @jp-n.ne.jp
  6. @jp-q.ne.jp
  7. @jp-r.ne.jp
  8. @jp-s.ne.jp
  9. @jp-t.ne.jp
UWSC
\b[a-zA-Z0-9._%+-]+@jp-[cdhknq-t]\.ne\.jp\b
ツーカー
  1. @sky.tkc.ne.jp
  2. @sky.tkk.ne.jp
  3. @sky.tu-ka.ne.jp
UWSC
\b[a-zA-Z0-9._%+-]+@sky\.(tkc|tkk|tu-ka)\.ne\.jp\b
ボーダフォン(Vodafone)

以下のメールアドレスにマッチします。

  1. @c.vodafone.ne.jp
  2. @d.vodafone.ne.jp
  3. @h.vodafone.ne.jp
  4. @k.vodafone.ne.jp
  5. @n.vodafone.ne.jp
  6. @q.vodafone.ne.jp
  7. @r.vodafone.ne.jp
  8. @s.vodafone.ne.jp
  9. @t.vodafone.ne.jp
UWSC
\b[a-zA-Z0-9._%+-]+@[cdhknq-t]\.vodafone\.ne\.jp\b

携帯電話

090080070から始まりxxx-xxxx-xxxxの形式に一致する番号にマッチします。

UWSC
\b0[789]0-[0-9]{4}-[0-9]{4}\b

郵便番号

以下は〒000-0000もしくは000-0000の郵便番号にマッチします。存在しない郵便番号でもマッチするので注意してください。

UWSC
〒?\d{3}-\d{4}

URL

UWSC
"https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?"

数値

n桁の整数

n桁の整数にマッチします。

UWSC
\d{n}

5桁の整数の場合\d{5}となります。

\dは文字クラスで書くと[0-9]となり、先頭に0が来る数値にもマッチします。先頭に0が来る整数を除く場合、先頭のみ[1-9]0を除いた数値が来るようにして残りを\dとします。先頭で1桁使っているのでmn-1の値を指定。

UWSC
[1-9]\d{m}

5桁の場合mには4を指定し、[1-9]\d{4}となります。

指定範囲
1桁

1桁の場合正規表現のメタ文字-を使うことで範囲を指定することができます。

UWSC
[0-9]		// 0~9
[2-5]		// 2~5

注意が必要なのは-の前後に指定できる数値は1桁だけです。例えば以下の場合258ではなく258になります。

UWSC
[2-58]		//2~5、8
2桁以上

1桁のときに出した258という範囲を指定する場合、2910505158と分けて考えます。

UWSC
[2-9]          // 2~9
[1-5][0-9]     // 10~50
5[1-8]         // 51~58

それぞれの範囲の正規表現を論理和(|)で繋げます。\bは単語の区切りを表すメタ文字で、数値の一部分にだけマッチしないようにします。例えば707の部分にだけマッチするといったことを防ぎます。

UWSC
\b([2-9]|[1-5][0-9]|5[1-8])\b

3桁以上のときも分岐を増やすだけでやることは2桁のときと同じです。以下は0255の範囲の数値を表す正規表現です。[1-9]?[0-9]0991[0-9]{2}1001992[0-4][0-9]20024925[0-5]250255を表しています。

UWSC
\b[1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]\b
奇数

奇数にマッチします。1の位が13579のいずれかになれば奇数になります。

UWSC
\d*[13579]
偶数

偶数にマッチします。1の位が02468のいずれかになれば偶数になります。

UWSC
\d*[02468]

都道府県

47都道府県にマッチします。単純に都道府県名を並べただけです。

UWSC
(北海道|青森県|岩手県|宮城県|秋田県|山形県|福島県|茨城県|栃木県|群馬県|埼玉県|千葉県|東京都|神奈川県|新潟県|富山県|石川県|福井県|山梨県|長野県|岐阜県|静岡県|愛知県|三重県|滋賀県|京都府|大阪府|兵庫県|奈良県|和歌山県|鳥取県|島根県|岡山県|広島県|山口県|徳島県|香川県|愛媛県|高知県|福岡県|佐賀県|長崎県|熊本県|大分県|宮崎県|鹿児島県|沖縄県)

以下は共通部分のをまとめたものです。

UWSC
東京都|北海道|(京都|大阪)府|(青森|岩手|宮城|秋田|山形|福島|茨城|栃木|群馬|埼玉|千葉|神奈川|新潟|富山|石川|福井|山梨|長野|岐阜|静岡|愛知|三重|滋賀|兵庫|奈良|和歌山|鳥取|島根|岡山|広島|山口|徳島|香川|愛媛|高知|福岡|佐賀|長崎|熊本|大分|宮崎|鹿児島|沖縄)県