我需要帮助找到前三个大写字母A-Z,然后是一个空格,然后是4个数字0-9。
Dim IndividualClasses As MatchCollection = Regex.Matches(AllExitClasses(a), "([A-Z])([A-Z])([A-Z]) ([0-9])([0-9])([0-9])([0-9])")
示例输入字符串为AML 4309
或DEF 4298
。
以上7个字符是我想要的字符串。
答案 0 :(得分:2)
编辑:由于您预处理输入字符串,因此可以使用
Dim IndividualClasses As MatchCollection = Regex.Matches(AllExitClasses(a).Replace(" ", "-"), "[A-Z]{3}[-][0-9]{4}")
REGEX EXPLANATION :
[A-Z]{3}
- 出现3次英文字母A到Z [-]
- 与一个连字符匹配的字符类[0-9]{4}
- 从0到9的数字恰好出现4次。请注意,我删除了捕获组,因为您似乎根本没有使用它们,而我正在使用limiting quantifiers,例如{4}
。
请注意,您可以按原样和之前的正则表达式[A-Z]{3}\p{Zs}[0-9]{4}
一起使用输入字符串,但是您需要遍历匹配集合并使用连字符替换每个Match.Value中的空格以创建新数组。 / p>
答案 1 :(得分:0)
好的,我用短划线替换了空格 然后我使用这个正则表达式 "([AZ])([AZ])([AZ])([ - ])([0-9])([0-9])([0-9])([0-9 ])&#34) 哪个有效
AllExitClasses(a) = AllExitClasses(a).Replace(" ", "-")
'
MyClassString = AllExitClasses(a).ToString
Dim IndividualClasses As MatchCollection = Regex.Matches(MyClassString, "([A-Z])([A-Z])([A-Z])([-])([0-9])([0-9])([0-9])([0-9])")
答案 2 :(得分:-1)
Regex.Matches([variable], "^([A-Z]{3,3})(\s)([0-9]{4,4})$")
此正则表达式将找到您的AAA 1111(带有[A-Z]{3,3}
的3个大写字母;带有(\s)
的一个空格;以及带有([0-9]{4})
的4个数字)。我发现http://regex101.com对不同语言的表达有很大的帮助。