[英]Using vb.net and RegEx to find string inside nested string
使用VB.NET,有没有办法一步一步进行此RegEx调用...而不是2-3?
我试图找到单词“ bingo”,或者在START和END单词之间找到任何东西,然后在内部的FISH和CAKES单词中找到它。 我的最终结果应该只是“宾果游戏”。
Dim s1 As String = "START (random string) FISH bingo CAKES (random string) END"
Dim m As Match
m = RegEx.Match(s1, "START\w*END")
If (m.Success) Then
Dim s2 As String = m.Groups(0).ToString()
m = RegEx.Match(s2, "FISH\w*CAKES")
if(m.Success) then
s2 = m.Groups(0).ToString()
m = RegEx.Match(s2, "bingo")
s2 = m.Group(0).ToString()
End If
End If
不确定VB.NET,但可以使用以下RegExp捕获内部的“宾果”:
START.*FISH.*(bingo).*CAKES.*END
然后,“宾果”将是此表达式的第一个(也是唯一的)匹配项。
您可以使用先行和后退:
Dim s1 As String = "START (random string) FISH bingo CAKES (random string) END"
Dim m As Match = RegEx.Match(s1, "(?<=\bSTART\b.*?\bFISH\s+)\w+(?=\s+CAKES\b.*?\bEND\b)")
Dim s2 as String = m.Value()
但是我认为使用捕获组就像@Alaudo建议的那样简单:
Dim m As Match = RegEx.Match(s1, "\bSTART\b.*?\bFISH\s+(\w+)\s+CAKES\b.*?\bEND\b")
Dim s2 as String = m.Groups(1).Value()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.