正規表現▲▲ | 説明 | 元データ(□□) | 一致する文字列(●●) |
A* | 0個以上連続したAに一致 | ABCDAAUYTRAAAERTK |
(0)A(1)(2)(3)(4)AA(5)(6)(7)(8) (9)AAA(10)(11)(12)(13)(14) |
A+ | 1個以上連続したAに一致 | (0)A(1)AA(2)AAA | |
A. | Aの次に何れかの1文字が ある場合に一致 |
(0)AB(1)AA(2)AA(3)AE | |
AB?C | AとCの間にBがないか, Bがある場合に一致 |
(0)ABC | |
A{3} | 3個のAに一致 | AAAAbbAAccAAAAAddAAAA ;aaaAAAbbbABC.AA |
(0)AAA(1)AAA(2)AAA(3)aaa(4)AAA |
A{2,4} | 2個以上,4個以内のAに一致 | (0)AAAA(1)AA(2)AAAA(3)AAAA (4)aaaA(5)AA(6)AA | |
[a-z]+ | a〜zの何れか,つまり アルファベット小文字を表す |
(0)AAAAbbAAccAAAAAddAAAA (1)aaaAAAbbbABC(2)AA | |
[A-Z]+ | A-Zの何れか,つまり アルファベット大文字を表す |
(0)AAAAbbAAccAAAAAddAAAA (1)aaaAAAbbbABC(2)AA | |
\w+ | 1個以上の英数文字に一致 | AAAA123AA65AAAAA789 AAAA;987798ABC.AA1234 |
(0)AAAA123AA65AAAAA789AAAA (1)987798ABC(2)AA1234 |
\d+ | 1個以上の数字に一致 | (0)123(1)65(2)789(3)987798 (4)1234 |
正規表現▲▲ | 説明 | 元データ(□□) | 一致する文字列(●●) |
AA|BB|CC | 選択 | AAACCCBBBDDD aacc,B01,A01,a02A03,A04y |
(0)AA(1)CC(2)BB(3)aa(4)cc |
A(01|02|03) | グループ化 | (0)A01(1)a02(2)A03 | |
^A | 行の最初 | (0)A | |
Y$ | 行の最後 | (0)y | |
[^ABC]+ | A以外の文字 | (0)DDD(1),(2)01,(3)01,(4)02 (5)03,(6)04y | |
\s+ | 空白,タブ | AAA CCC BBB DDD aacc, B01,A01,a02A03, A04y |
0(1) (2) (3) (4) |
\S+ | 空白文字以外 | (0)AAA(1)CCC(2)BBB(3)DDD (4)aacc,B01,A01,a02A03,(5)A04y | |
\d+ | 数値文字 | (0)01(1)01(2)02(3)03(4)04 | |
\D+ | \d以外 | (0)AAA CCC BBB DDD aacc,B(1),A(2),a (3)A(4), A(5)y | |
\w+ | 英数文字かアンダーバー | ああabcいい123KJHエエ え_XYZ;9875.87sdfg |
(0)abc(1)123KJH(2)_XYZ(3)9875 (4)87sdfgh |
\W+ | \w以外の文字 | (0)ああ(1)いい(2)エエえ(3);(4). |
Sub 検索サンプル() Dim reg As Object
Dim itti As Object Dim dat As String dat = Cells(5, 2) 'B5セルの内容が元データ(□□) Set reg = CreateObject("VBScript.RegExp") reg.Pattern = "▲▲" '検索する正規表現パターン reg.Global = True '検索範囲はグローバル reg.IgnoreCase = True '大文字・小文字を区別しない Set itti = reg.Execute(dat) For i = 0 To itti.Count - 1 '(●●) Cells(5, 4) = Cells(5, 4) & "(" & i & ")" & itti.Item(i).Value NextEnd Sub |
Sub 検索サンプル() Dim reg As Object Dim itti As Object Dim dat As String |
正規表現▲▲ | 説明 | 元データ(□□) | 一致する文字列(●●) |
html? | 直前の正規標記の当てはまる 文字がゼロ個または1個を指定。 ここ例はhtml、htmの両方を拾う |
ABC.html、 def.htm | (0)html(1)htm |
<p>.+?</p> | </p>の前に最短一致記号?を 付けると、1個のタグを拾える (?がない場合は下記) |
<P>abc</P><P>def</P> |
(0)<P>abc</P>(1)<P>def</P> |
<p>.+</p> | これは最長マッチングで、途中 </p>が出てきているのですが、 そこでは止まらず、最後の</p> までマッチしています。 |
(0)<P>abc</P><P>def</P> | |
A(?:xx|yy)B | この(?:○○)は(括弧)でくくって あるが、捕捉グループではない 単なるグループとなる。 |
AxxB,AyyB | (0)AxxB(1)AyyB |
正規表現▲▲ | 説明 | 元データ(□□) | 一致する文字列(●●) |
長野産りんご | あああ長野産りんごイイイ | (0)長野産りんご | |
長野産(?=りんご) | 長野産の直後にりんごがあること | あああ長野産りんごイイイ | (0)長野産 |
長野産(?!りんご) | 長野産の直後にりんごがないこと | あああ長野産りんごイイイ | ヒットなし |
長野産(?!りんご) | 長野産の直後にりんごがないこと | あああ長野産ぶどうイイイ | (0)長野産 |
正規表現▲▲ | 説明 | 元データ(□□) | 一致する文字列(●●) |
(?<=長野産)りんご | りんごの前に長野産があること | あああ長野産りんごイイイ | 実行時エラー5017 後方参照?はVBAではエラー発生で 使用不可のようだ |
(?<!長野産)りんご | りんごの前に長野産がないこと | あああ長野産りんごイイイ | |
(?<!長野産)りんご | りんごの前に長野産がないこと | あああ青森産りんごイイイ |
正規表現▲▲ | 説明 | 元データ(□□) | 一致する文字列(●●) |
^A | 行の最初 | AAACCCBBBDDD aacc,B01,A01,a02A03,A04y |
(0)A |
[^ABC]+ | こちらの^はABC以外の文字 | (0)DDD(1),(2)01,(3)01,(4)02 (5)03,(6)04y |