如何使用.Net中的正则表达式捕获以下重复数据?

时间:2011-02-07 10:54:35

标签: regex vb.net

我正在尝试找到正确的RegEx来捕获一些(可能)重复数据。我不知道它会重复多少次。如果我提供一些数据和我想要捕获的内容,任何人都可以指出我正确的方向吗?它是.Net正则表达式引擎(Visual Basic)

数据看起来基本上是这样的,并且当有多个出现时由$!$分隔:

MyFunction('001 $$ String Description 1 $!$ 002 $$ String Description 2');

我想捕获以下群组(其中可能有任何数字):

1: 001 $$字符串描述1

2: 002 $$字符串描述2

等。等

我知道这可以用RegEx.Split和String.Split完成,但我仍然想知道它是否可以在一次捕获RegEx :)任何指针?

非常感谢。

1 个答案:

答案 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,所以我希望我的语法正确)。