注意:这是一个关于 PHP 正则表达式风格的理论问题,而不是关于 PHP 验证的实际问题。我只是使用域名,因为没有更好的例子。
“二级域名”是指放在 http:// 或http://www.
.com(.co、.info、.etc)之间的字母、数字、句号和/或破折号的组合。
我只对使用英文版拉丁字母的二级域名感兴趣。
这种模式:
[A-Za-z0-9.-]+
匹配有效域名,例如 stackoverflow、StackOverflow、stackoverflow.co(如在 stackoverflow.co.uk 中)、stack-overflow 或 stackoverflow123。
但是,相同的模式也可以匹配 stack...overflow、stack---over--flow、........、-------- 甚至 .. 和 -。
如何重写该模式,以指示该周期符号和破折号,即使它们可以在一个节点中多次使用,
- 不能在没有其他符号的情况下使用,
- 不能并排放置两次或多次,
- 并且不能放在节点的开头或结尾?
先感谢您!