具有多个条件的不同模式的正则表达式

时间:2016-09-08 07:47:26

标签: regex multiple-conditions

我正在寻找一个完全不同条件的正则表达式。我的表达要求 -

  1. 总长度必须为6或7或8个字符。
  2. 必须包含间隙(空格字符)。
  3. 内部代码,间隙右侧的部分,必须始终为3个字符。
  4. 内向代码的第一个字符必须是数字。
  5. 内向代码的第二个和第三个字符必须是alpha。
  6. 向外的代码,间隙左边的部分,可以是2,3或4个字符。
  7. 外向代码的第一个字符必须是alpha。
  8. 我需要表达如此 - BH6 5BG或b6 7ba或CH11 2ab

    字母表可以是小写字母或大写字母,第一个字符应该是字母表,空格后允许使用三个字符,其中第一个字符应该是数字。

    我制作的正则表达式只包含第一个条件 - ^(\d{6}|\d{7}|\d{8})$

    我在正则表达式中非常困惑。任何人都可以帮助我建立上述条件的正则表达式吗?

4 个答案:

答案 0 :(得分:2)

以下正则表达式应该有效:

^[A-Za-z][A-Za-z\d]{1,3}\s\d[A-Za-z]{2}$

Explaination

答案 1 :(得分:1)

我相信这会为你做到:

^[a-zA-Z][a-zA-Z0-9]{1,3} \d[a-zA-Z]{2}$

匹配

  • ^行首
  • [a-zA-Z]字母字符 - 大写或小写。
  • [a-zA-Z0-9]{1,3}字母字符 - 大写或小写 - 或数字,重复1-3次。
  • 空格
  • \d数字
  • [a-zA-Z]{2}一个字母字符 - 大写或小写 - 重复2次。
  • $行尾

Some examples at regex101

答案 2 :(得分:0)

我会用这个:

/^[a-z].{1,3}\s\d[a-z]{2}$/i

故障:

^                               #start of line
 [a-z]                          #alpa
      .{1,3}                    #from 1 to 3 of any char
            \s                  #a whitespace char
              \d                #a digit
                [a-z]{2}        #2 of any aplha
                        $       #end of line
                         i      #case insensitive

答案 3 :(得分:0)

^(?i)[a-z][a-z0-9]{1,3}\\s[0-9][a-z]{2}$

(?i) - >字母表可以是小写字母或大写字母。

\\s - >只有一个空格/间隙。

*我已经使用Java检查了它。