好吧,让我说我有一个字符串"帽子狗中的猫",我知道想要正则表达式匹配猫和狗从相同的字符串.
所以我有类似的东西:
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
Run Code Online (Sandbox Code Playgroud)
match.Value返回"帽子狗中的猫",这是预期的.
但我真正需要的只是"猫狗",中间没有其他的话,我被卡住了.
谢谢你的帮助!
如果它有帮助,我试图解析的字符串就像"游戏名称20_03 Starter Pack r6",我试图将"20_03 r6"作为版本信息拉出来.目前使用"\ b\d {2} _\d {2}\b.\ br\d "作为我的正则表达式字符串.
您可以将正则表达式的部分括起来以创建捕获值的组:
Dim regex As New Regex("\b(cat)\b.*\b(dog)")
Run Code Online (Sandbox Code Playgroud)
然后使用match.Groups(1).Value和match.Groups(2).Value.
您的正则表达式将是
Dim regex = New Regex("\bcat\b|\bdog\b")
Run Code Online (Sandbox Code Playgroud)
这与字符串cat或dog输入字符串匹配。
对于第二个字符串,您的正则表达式将是
\b\d{2}_\d{2}\b|r\d
Run Code Online (Sandbox Code Playgroud)
说明:
\b 匹配单词边界(即,单词字符和非单词字符之间的匹配)。\d{2} 完全匹配两位数的数字。_ 匹配文字下划线符号。\d{2} 完全匹配两位数的数字。\b 匹配单词边界(即,单词字符和非单词字符之间的匹配)。|逻辑“或”运算符通常用于组合两个正则表达式模式。this|that, 这个或那个。r\d 文字r后跟一位数字。