0

我将不得不阅读正则表达式教程 - 到目前为止,我在这方面有一个心理障碍 - 现在我只是想匹配以下模式:

ab234_12345_45678_afddsyyht788959

我正在尝试提取由下划线包围的第三个(可能是数字)项目(如果字符串的模式错误,当然返回无效格式)。

就像是:

Dim strOriginal As String = "ab234_12345_45678_afddsyyht788959"
Dim strFound As String
Try
    Dim matches As MatchCollection
    Dim regexStuff As New Regex("_.*?_")
    matches = regexStuff.Matches(strOriginal)
    strFound = matches.Item(0).Groups(2).Value.ToString
Catch
    strFound = "invalid"
End Try
MessageBox.Show(strFound)

问题出在模式上-我想不出任何可行的方法……(我也尝试了其他一些模式)

4

1 回答 1

1

使用这个正则表达式

[A-Za-z0-9]+_[A-Za-z0-9]+_([A-Za-z0-9]+)

匹配\1

如果您希望第三组为数字,请替换([A-Za-z0-9]+)(\d+)

于 2012-08-27T15:36:33.090 回答