Regex matching if maximum two occurrences of dot and dash

后端 未结 3 1909
小鲜肉
小鲜肉 2021-01-13 05:28

I need a regular expression that will match any string containing at most 2 dashes and 2 dots. There does not HAVE to be a dash nor a dot, but if there is 3+ dashes or

3条回答
  •  南笙
    南笙 (楼主)
    2021-01-13 05:47

    This tested regex will do the trick:

    $re = '/# Match string with 2 or fewer dots or dashes
        ^                            # Anchor to start of string.
        (?=[^.]*(?:\.[^.]*){0,2}$)   # Assert 2 or fewer dots.
        (?=[^\-]*(?:-[^\-]*){0,2}$)  # Assert 2 or fewer dashes.
        .*                           # Ok to match string.
        $                            # Anchor to end of string.
        /sx';
    

提交回复
热议问题