- ベストアンサー
VBAでの正規表現(regExp)がうまく表せません。
エクセル2000のVBAで正規表現を使用してシングルクオーテーションに囲まれた文字を取得したいのですが、どうやったらよいのでしょうか。 検索対象文字列 = 今日は'家族'と'ピクニック'にいきます。 の時、「'家族'」 と 「'ピクニック'」の2つを取得したいのですが、「'家族'と'ピクニック'」が取得されてしまいます。 Pattern = "'.+'" ではダメなんでしょうか。 パターンをお教えいただければ、きっとmatchsコレクションとかはどうにかなると思いますので、ぜひともご教授くださいませ。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 正規表現については下記 URL の「どこまで繋がるのか?」の記事 が参考になりますよ。 http://www.sixnine.net/regexp/regexp7.html Sub Sample() Dim Reg As Object ' As RegExp Dim Mc As Object ' As MatchCollection Dim M As Object ' As Match Set Reg = CreateObject("VBScript.RegExp") With Reg .Pattern = "'.*?'" .IgnoreCase = False .Global = True Set Mc = .Execute("「'家族'」 と 「'ピクニック'」") End With For Each M In Mc MsgBox M.Value Next Set Mc = Nothing Set Reg = Nothing End Sub
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 最長マッチを避ける方法としては、他に、こんなものがあります。 .Pattern = "'[^']+'" こちらは、確実に「'..'」で、はさまれている文字しか、拾い出しません。IEログを取り出す時に、こちらを使っています。「''」は、無視されます。
お礼
大変、大変遅くなりましたが締めさせていただきます。 ありがとうございました。