7
A
回答
11
^(?!-)(?!.*--)[A-Za-z0-9-]+(?<!-)$
说明:
^ # Anchor at start of string
(?!-) # Assert that the first character isn't a -
(?!.*--) # Assert that there are no -- present anywhere
[A-Za-z0-9-]+ # Match one or more allowed characters
(?<!-) # Assert that the last one isn't a -
$ # Anchor at end of string
22
^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$
使用该正则表达式,连字符才刚刚组内匹配。这个连字符的每一边都有[A-Za-z0-9]+
子表达式。由于此子表达式与一个或多个字母数字字符相匹配,因此连字符不可能匹配另一个连字符的开始,结尾或旁边。
+0
这很聪明!可能比我所有的视角更容易理解。 – 2011-02-04 11:21:25
1
^[a-zA-Z0-9](?!.*--)[a-zA-Z0-9-]*[a-zA-Z0-9]$
^[a-zA-Z0-9] /*Starts with a letter or a number*/
(?!.*--) /*Doesn't include 2 dashes in a row*/
[a-zA-Z0-9-]* /*After first character, allow letters or numbers or dashes*/
[a-zA-Z0-9]$ /*Ends with a letter or a number*/
匹配:
重新播放/ 重新上场-ED
不MATC H:
Replay-/RE - 播放/ -replay
0
如果“ - ”不是在字符串的开始也没有结束允许,您正在寻找“一个或多个alanum的序列,接着是一个短划线的一个或多个基团(S),随后1个或多个alanum”
/[0-9A-Z]+(-[0-9A-Z]+)+/
简单与正则表达式的宝贵格言。 (nota:搜索小写字母,添加它们,我没有为了清晰起见)
相关问题
- 1. 正则表达式只允许数字,逗号和破折号
- 2. 反式表达式 - 允许破折号?
- 3. 只允许破折号和数字的正则表达式?
- 4. 正则表达式仅允许数字,破折号和圆点
- 5. 正则表达式:不允许连续出现超过2个字符
- 6. 为什么我的正则表达式允许超过1
- 7. PHP preg_replace破折号正则表达式
- 8. python正则表达式破折号
- 9. 正则表达式用破折号
- 10. 正则表达式 - 不应该允许空格不断连续
- 11. 在javascript正则表达式 - 不应该允许连续的括号,连续的+符号和连续的标志
- 12. 正则表达式,不允许连续点
- 13. 只允许使用数字,字母和破折号的正则表达式?
- 14. 允许正则表达式
- 15. 用OR正则表达式去除过多的破折号
- 16. 正则表达式只允许号码范围1-20
- 17. 正则表达式帮助:破折号......或不是
- 18. 正则表达式匹配超过允许的字符
- 19. 正则表达式允许数超过0.5
- 20. 正则表达式允许超过{}的数量
- 21. 正则表达式 - 不允许像“U12345”
- 22. 正则表达式不允许空格
- 23. 正则表达式不允许负数
- 24. 正则表达式不允许零
- 25. 正则表达式不允许单引号和双引号
- 26. Django的URL正则表达式用括号,破折号
- 27. 正则表达式 - 模式的电子邮件,并且不允许双破折号
- 28. JavaScript和PHP的正则表达式只允许字母,数字,句号,星号,下划线和破折号
- 29. 为什么这个正则表达式允许星号通过?
- 30. 正则表达式替换周期与破折号URL格式
是否允许2和3? – BoltClock 2011-02-04 11:14:16
2和3不允许 – cometta 2011-02-04 11:34:36