像这样使用模式
Dim regex As New Regex("#(\d{4}$)")
通过这种模式,我可以从字符串中读取值
My #1234 number
My #125542 Number
但是呢
This is my # 1234 number
This is #12345R number
我的正则表达式模式应该检索值。
1234
125542
1234
12345
最佳答案
你可以使用
Dim regex As New Regex("#\s*(\d{4,})")
当你获得匹配项时,获取 match.Groups(1).Value
。
图案细节
#
-#
字符\s*
- 0+ 个空格(\d{4,})
- 第 1 组:四位或更多位数字。
参见 .NET regex demo ,结果:
参见 VB.NET demo :
Dim r As New Regex("#\s*(\d{4,})")
Dim s As String
s = "My #1234 number, My #125542 Number, This is my # 1234 number, This is #12345R number"
For Each m As Match In r.Matches(s)
Console.WriteLine(m.Groups(1).Value)
Next
关于使用 OR 的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47398467/