VB.Net正则表达式匹配

时间:2014-07-21 04:26:02

标签: regex vb.net

好吧,让我说我有一个字符串“帽子里的猫”,我知道想要正则表达式匹配同一串的猫狗。

所以我有类似的东西:

Dim myString As String = "The cat in the hat dog"
Dim regex = New Regex("\bcat\b.*\bdog")
Dim match = regex.Match(myString)
If match.Success Then
    Console.WriteLine(match.Value)
End If

match.Value返回“帽子狗中的猫”,这是预期的。

但我真正需要的只是“猫狗”,中间没有其他词语,我被卡住了。

感谢您的帮助!

如果有帮助,我试图解析的字符串就像“游戏名称20_03 Starter Pack r6”,我试图将“20_03 r6”拉出作为版本信息。目前使用“\ b \ d {2} _ \ d {2} \ b。 \ br \ d ”作为我的正则表达式字符串。

2 个答案:

答案 0 :(得分:5)

您可以将正则表达式的某些部分括起来,以创建捕获值的组:

Dim regex As New Regex("\b(cat)\b.*\b(dog)")

然后使用match.Groups(1).Valuematch.Groups(2).Value

答案 1 :(得分:4)

你的正则表达式是,

Dim regex = New Regex("\bcat\b|\bdog\b")

这匹配输入字符串中的字符串catdog

DEMO

对于第二个字符串,你的正则表达式将是

\b\d{2}_\d{2}\b|r\d

DEMO

<强>解释

  • \b匹配单词边界(即单词字符和非单词字符之间的匹配)。
  • \d{2}完全匹配两位数字。
  • _匹配文字下划线符号。
  • \d{2}完全匹配两位数字。
  • \b匹配单词边界(即单词字符和非单词字符之间的匹配)。
  • |逻辑OR运算符通常用于组合两个正则表达式模式。this|that,这个或那个。
  • r\d字面值后跟一位数。