代码之家  ›  专栏  ›  技术社区  ›  dushkin

regexp:如何为列表生成regexp

  •  0
  • dushkin  · 技术社区  · 6 年前

    我正在尝试创建一个正则表达式来匹配以下结构:

     []
     [A]
     [A, A]
     [A, A, A]
    

    等。。

    到目前为止,我能达到的最好成绩是:

    \[A?|(A(, A)*)*\]
    

    但这还不够好。

    enter image description here

    你能提出建议吗?

    谢谢。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Wiktor Stribiżew Cristian Lupascu    6 年前

    您可以使用

    \[(?:A(?:, A)*)?]
    

    regex demo

    细节

    • \[ -A [ 烧焦
    • (?:A(?:, A)*)? -可选的非捕获组匹配
      • A -安
      • (?:, A)* -连续出现0次或更多次 , 空间与
    • ] -A ] 烧焦。