答案 0 :(得分:0)
您当前的正则表达式存在以下问题:
/
和-
匹配,但仅在一个位置匹配(例如,将匹配0123/-/-456
但不匹配0123/456/789
|
匹配,您不需要在[character class]
中使用end of the string$
,但从^the start of the string
开始不匹配(例如,它将匹配foo0123/456
,尽管它不匹配0123/456foo
)您可以使用Avinash Raj提出的以下正则表达式:
^[a-zA-Z0-9]+(?:[/-][a-zA-Z0-9]+)*$
通过将字符类匹配的斜杠和破折号以及一个匹配的字母字符放在(?:non-capturing group)
中来固定的第一点,我们可以用*
进行量化以指定它可以出现任意次数。该组将匹配任意数量的斜杠或破折号,后跟数字字符。
另外两点很简单,我们删除无用的|
并在正则表达式的开头添加一个^
。