使用 OR 的正则表达式模式

标签 regex vb.net

像这样使用模式

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 ,结果:

enter image description here

参见 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/

相关文章:

javascript - 获取 ESLint : Unnecessary escape character

regex - 用正则表达式替换重复字符

java - 我想在Java中通过rexgs提取=之后的字符串

regex - 使用 SED 交换 bash 中的列而不使用循环

C++ dll 变量到 vb.net exe

c# - VS(2010) 中的强制文档

用于在某些两个字符串之间提取字符串的 python 正则表达式

vb.net - 任何工具来检查重复的 VB.NET 代码?

.net - 使用 Linq 和 MySql 对 Datagridview1(Table1) 的值求和并将其保存到 Datagridview2(Table2)

vb.net - 运算符(operator)除外