用于查找包含字符和数字的字符串的正则表达式
RegEx for finding strings with chars and numbers
我正在尝试匹配零件号与普通文本混合的字符串。
这里有几个例子。
- 拖车控制 Ecu,Gl3t-19H378-Ac
- 组件,Pwr,测试 Gd,Priv-M50t3
- 左,后,Brn-Tan,Pwr,4DR,Mju1
- T-Case Ecu,56029590AE
- 对,盲点模块,284K0 9HS0F
在这些例子中,我试图匹配。
- Gl3t-19H378-Ac
- Priv-M50t3
- Mju1
- 56029590AE
- 284K0 和 9HS0F
我在 .Net 中,这是我一直在使用的正则表达式。
(\b[a-zA-Z0-9][a-zA-Z0-9\-]{1,32}(\b|$)(?<=[0-9]))
如果比赛以数字结尾,它可以满足我的需要。我想要的规则是匹配单词边界之间的任何字符串,这些字符串要么是所有数字,要么是数字和字符的混合,但绝不仅仅是字符。
应该这样做:
\b[a-zA-Z0-9-]*\d[a-zA-Z0-9-]*\b
如果需要限制长度最大为32,添加前瞻:
\b(?=[a-zA-Z0-9-]{1,32}\b)[a-zA-Z0-9-]*\d[a-zA-Z0-9-]*\b
如果下划线也可以,可以用[\w-]
代替[a-zA-Z0-9-]
。
我正在尝试匹配零件号与普通文本混合的字符串。
这里有几个例子。
- 拖车控制 Ecu,Gl3t-19H378-Ac
- 组件,Pwr,测试 Gd,Priv-M50t3
- 左,后,Brn-Tan,Pwr,4DR,Mju1
- T-Case Ecu,56029590AE
- 对,盲点模块,284K0 9HS0F
在这些例子中,我试图匹配。
- Gl3t-19H378-Ac
- Priv-M50t3
- Mju1
- 56029590AE
- 284K0 和 9HS0F
我在 .Net 中,这是我一直在使用的正则表达式。
(\b[a-zA-Z0-9][a-zA-Z0-9\-]{1,32}(\b|$)(?<=[0-9]))
如果比赛以数字结尾,它可以满足我的需要。我想要的规则是匹配单词边界之间的任何字符串,这些字符串要么是所有数字,要么是数字和字符的混合,但绝不仅仅是字符。
应该这样做:
\b[a-zA-Z0-9-]*\d[a-zA-Z0-9-]*\b
如果需要限制长度最大为32,添加前瞻:
\b(?=[a-zA-Z0-9-]{1,32}\b)[a-zA-Z0-9-]*\d[a-zA-Z0-9-]*\b
如果下划线也可以,可以用[\w-]
代替[a-zA-Z0-9-]
。