Regular expression to count number of commas in a string

前端 未结 9 997
故里飘歌
故里飘歌 2020-11-27 05:23

How can I build a regular expression that will match a string of any length containing any characters but which must contain 21 commas?

9条回答
  •  孤街浪徒
    2020-11-27 06:08

    If you're using a regex variety that supports the Possessive quantifier (e.g. Java), you can do:

    ^(?:[^,]*+,){21}[^,]*+$
    

    The Possessive quantifier can be better performance than a Greedy quantifier.


    Explanation:

    (?x)    # enables comments, so this whole block can be used in a regex.
    ^       # start of string
    (?:     # start non-capturing group
    [^,]*+  # as many non-commas as possible, but none required
    ,       # a comma
    )       # end non-capturing group
    {21}    # 21 of previous entity (i.e. the group)
    [^,]*+  # as many non-commas as possible, but none required
    $       # end of string
    

提交回复
热议问题