我正在尝试找到正确的RegEx来捕获一些(可能)重复数据。我不知道它会重复多少次。如果我提供一些数据和我想要捕获的内容,任何人都可以指出我正确的方向吗?它是.Net正则表达式引擎(Visual Basic)
数据看起来基本上是这样的,并且当有多个出现时由$!$分隔:
MyFunction('001 $$ String Description 1 $!$ 002 $$ String Description 2');
我想捕获以下群组(其中可能有任何数字):
1: 001 $$字符串描述1
2: 002 $$字符串描述2
等。等
我知道这可以用RegEx.Split和String.Split完成,但我仍然想知道它是否可以在一次捕获RegEx :)任何指针?
非常感谢。
答案 0 :(得分:1)
您可以使用此正则表达式执行此操作:
Dim RegexObj As New Regex("MyFunction\('(?:(\d+\$\$[^$]+)(?:\$!\$)?)+'\);")
然后,在成功比赛之后,这样的事情:
Dim MatchResults As Match = RegexObj.Match(SubjectString)
If MatchResults.Success Then
Console.WriteLine("Matched text: {0}", MatchResults.Value)
For Each capture As Capture In MatchResults.Groups(1).Captures
Console.WriteLine(" Capture: {0}", capture.Value)
Next
MatchResults = MatchResults.NextMatch()
End While
(我不知道VB.NET,所以我希望我的语法正确)。