代码之家  ›  专栏  ›  技术社区  ›  Brett Allen

正则表达式中的分组

  •  1
  • Brett Allen  · 技术社区  · 14 年前

    我试着在正则表达式中进行匹配。

    它必须匹配以下字符串格式的字符串:

    从C或H开始,后面是6个字符。(共7个字符) 从KK开始,跟随8个字符。(长10个字符)

    字段限制为10个键入的字符。我有以下几点:

    (((C|H).{6})|(KK.{8}))

    I'm assuming my grouping is wrong, can anyone point out my error?

    4 回复  |  直到 14 年前
        1
  •  2
  •   Mark Byers    14 年前

    你需要 anchor 开始( ^ (结束) $ 字符串:

    ^([CH].{6}|KK.{8})$
    

    我也删掉了不必要的括号,换了 (C|H) 到A character class 提高可读性。

        2
  •  1
  •   Jürgen Steinblock    14 年前

    You you want to capture anything from the pattern? If not, I would try this one:

    ^(KK..|C|H).{6}$
    
        3
  •  1
  •   Oded    14 年前

    您需要添加行的开始和结束 anchors :

    ^(((C|H).{6})|(KK.{8}))$
    
        4
  •  0
  •   nokturnal    14 年前

    I like Mark Byers answer best, with this modification (tested for .NET):

    ^[CH].{6}$|^KK.{8}$
    

    在C或H之后,原始值将对超过6个字符的值进行错误匹配。