我想要一個正則運算式模式來匹配字母數字,但只允許 *(星號)或 -(連字符)出現不超過 1 次。此外,字串的長度不應超過 5。
匹配的字串
abcds
a*a1a
11*a-
-a*hu
124ed
0-aur
ABC
8*-a
a
不匹配的字串
**ab1 <-- two *s
--ahy <-- two -s
0-a-* <-- two -s
111-*1 <--exceeds length
abcdef <--exceeds length
u-a-r <-- two -s
感謝任何幫助!
uj5u.com熱心網友回復:
您可以使用負先行來確認字串不包含超過一個給定字符。這是一個例子:
^(?:[A-Za-z0-9]|([*-])(?!.*\1)){1,5}$
演示。
或者:
^(?!.*([*-]).*\1)[A-Za-z0-9*-]{1,5}$
演示。
參考:
- 向前看和向后看。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534027.html
