匹配字符串的正则表达式

时间:2014-10-07 09:33:05

标签: regex string

我正在尝试编写一个匹配任何字符串的正则表达式:AA-12-DF-AA

匹配的字符串将包含以下部分:

  1. 两个大写字母(它将是两次相同的字母)
  2. 两位数
  3. 两个大写字母,但与第一部分不同
  4. 另外两个大写字母,与第一部分匹配
  5. 所有部分均以' - '

    分隔

    例如这是有效的字符串:

    BB-43-DF-BB 
    CC-99-DD-CC 
    XX-21-AB-XX
    

3 个答案:

答案 0 :(得分:0)

你可以试试下面的正则表达式,

^(([A-Z])\2)-\d{2}-(?:(?!\1)[A-Z]){2}-\1$

DEMO

答案 1 :(得分:0)

^(?:([A-Z])\1)-\d{2}-(?!\1)[A-Z]{2}-\1\1$

试试这个。这符合所有条件。参见演示。

http://regex101.com/r/hQ1rP0/32

答案 2 :(得分:0)

这将完成这项工作:

^(([A-Z])\2)-\d{2}-(?:(?!\1)[A-Z]){2}-\1$