いつもお世話になっております。
また正規表現がわからなくなってしまったのですが、
お助け願えないでしょうか。
Strの中にはこのようなものが入っています。
Str="あいうえお=====かきくけこ=====さしすせそたちつてと=====まみむめも=====なにぬねの"
Dim r As Regex
Dim m As Match
Dim StrR As String
r = New Regex("=====.+=====")
m = r.Match(Str)
While m.Success
StrR = m.Value
m = m.NextMatch()
End While
順番に
StrR="=====かきくけこ====="
StrR="=====まみむめも====="
を取得したいのですが、
上記のような書き方だと、
StrR=====かきくけこ=====さしすせそたちつてと=====まみむめも====="
を取得してしまいます。
回数の指定など色々試してはみたのですが、
どうしても目的のとおりにすることができず困っておりまして、
書き方をご教示頂きたくよろしくお願い致します。
あ、この場合
+だから
+? 1 回以上でできるだけ少ない繰り返しを指定します (最短一致の + と同じ)。
を紹介しなきゃ駄目だったか
r = New Regex("=====.+?=====")
か
'===========================
Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Dim r As Regex
Dim m As Match
Dim Str As String = "あいうえお=====かきくけこ=====さしすせそたちつてと=====まみむめも=====なにぬねの"
Dim StrR As String
r = New Regex("=====.+?=====") '?を加えた
m = r.Match(Str)
While m.Success
StrR = m.Value
Console.WriteLine(StrR)
m = m.NextMatch()
End While
End Sub
End Module
で動くはず
お礼
出来ました! ご丁寧に教えてくださって本当にありがとうございます。 ?は試したつもりだったのですが出来なかったように思っていました。 正規表現はすごく苦手なので、早く慣れたいと思います。 ありがとうございました。