VB.NET正则表达式搜索AAA-9999

时间:2015-06-18 18:09:39

标签: regex vb.net

我需要帮助找到前三个大写字母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 4309DEF 4298。 以上7个字符是我想要的字符串。

3 个答案:

答案 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>

Here is an IDEONE demo

答案 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对不同语言的表达有很大的帮助。