我对一个看似简单的特殊正则表达式感到有些困惑.
匹配必须是仅包含az,AZ,0-9的字符串,并且必须在字符串中的任何位置至少出现一个" - "字符.
我有,[a-zA-Z0-9-]+但问题是,它也将匹配那些没有' - '字符的人.
ABC123-ABC //should match
ABC123ABC //shouldn't match.
Run Code Online (Sandbox Code Playgroud)
Pet*_*nov 24
这应该工作:
^([a-zA-Z0-9]*-[a-zA-Z0-9]*)+$
Run Code Online (Sandbox Code Playgroud)
此外,如果你想要正好135个连字符:
^([a-zA-Z0-9]*-[a-zA-Z0-9]*){135}$
Run Code Online (Sandbox Code Playgroud)
或者如果你想要至少有23个连字符但不超过54个连字符:
^([a-zA-Z0-9]*-[a-zA-Z0-9]*){23,54}$
Run Code Online (Sandbox Code Playgroud)
你明白了:)