vbaの正規表現で、マッチした一部分を抽出したい
accessの正規表現で、マッチした部分の一部を取り出したいと思っています。
秀丸で言えば、
------------------------
文字列 あいうえお
↓↓↓
正規表現 あ(.*)お
置き換え文字 \1
↓↓↓
抽出 いうえ
------------------------
って感じの「¥1」みたいなのがほしいと考えています。
現在、下記のような感じで、対象文字を抽出しています。
ここから、また正規表現でほしい部分を抽出しなければいけないのでしょうか?
【上の例で言えば、「あいうえお」を抽出する関数】
------------------------
Function 抜き出し(ByVal 指定文字列 As String) As String
Dim 正規表現, 一致集団, 一致要素
Set 正規表現 = CreateObject("VBScript.RegExp")
正規表現.Pattern = "購入日時[0-9]{4}年[0-9]{1,2}月[0-9]{1,2}日 [0-9]{1,2}時[0-9]{1,2}分"
正規表現.MultiLine = True
Set 一致集団 = 正規表現.Execute(指定文字列)
For Each 一致要素 In 一致集団
抜き出し = 一致要素.Value
Exit For
Next
End Function
------------------------
これだと、
購入日時2012年1月25日 17時53分
がマッチします。
でもほしいのは、
2012年1月25日 17時53分
の部分だけ。
何かいい方法は無いでしょうか?
よろしくお願いします。
お礼
う~むないですか。[^]で確かにできそうですが、場合によってはかなり複雑な表現になりますね。 これでやってみます。ありがとうございました!