-1
A
回答
0
你的正則表達式的一個問題是,它迫使用戶把-
。您可以使用?
,使之選:
^[a-z A-Z]*\-?[a-zA-Z]*$
0
如果匹配.*-.*-
,那麼你有一個以上的連字符和這樣的字符串不應當被接受
1
可以使用負前瞻拒絕具有超過串一個連字符:
^(?![^-]+-[^-]+-)[a-zA-Z- ]+$
Matched上debuggex演示。
Another Matched demoge on debuggex。
Not Matched Demo demoge on debuggex。
3
您的正則表達式只允許有一個-
。但我認爲你要馬赫「史密斯」,「史密斯 - 肯尼迪」,而不是「Smith-」,要做到這一點,你必須只連字符移到第二組:
^[a-z A-Z]+(-[a-z A-Z]+)?$
BTW,幾乎當使用*
時,所有情況下+
是更好的解決方案。
0
相關問題
- 1. 正則表達式只允許字符
- 2. 只允許一個字母字符 - 正則表達式
- 3. 正則表達式允許數字和中間只有一個連字符
- 4. 在java中只允許兩個或更多連字符的正則表達式?
- 5. 擴展正則表達式以允許使用連字符
- 6. 只允許某些非字母字符在正則表達式
- 7. 正則表達式只允許在
- 8. 只允許一組字符的正則表達式
- 9. 正則表達式只允許一組特定的字符(Javascript)?
- 10. PHP的正則表達式只允許兩個字符
- 11. 正則表達式屬性,只允許字母數字字符
- 12. Java-我如何只允許不使用正則表達式的字母字符
- 13. 正則表達式允許在Java中使用空格字符
- 14. 正則表達式只允許一個字後跟網址
- 15. Java正則表達式 - 只允許某些字符和數字
- 16. 只允許首字母大寫字符串(正則表達式)
- 17. 正則表達式允許一個特殊字符(:)和數字和字母只
- 18. 正則表達式只允許負數
- 19. 只允許在正則表達式中使用特定的轉義字符
- 20. 只允許在文本框中使用英文字符的正則表達式
- 21. Python:允許重複正則表達式,只允許在逗號之間使用1連字符
- 22. 我使用的正則表達式不允許使用符號
- 23. 只允許字符或空格的正則表達式
- 24. jQuery正則表達式只允許貨幣符號和數字
- 25. PHP - 正則表達式只允許數字和符號
- 26. 正則表達式限制特殊字符,只允許DOT和&
- 27. 正則表達式:用連字符替換空格,只允許a-z
- 28. 如何只允許一個/在正則表達式
- 29. 如何允許正則表達式與一個字符匹配
- 30. JS正則表達式只允許數字,分號和連字符
你的正則表達式只允許使用一個連字符,那麼你的問題是什麼? – stema 2013-04-05 07:20:13