0

我需要创建一个正则表达式来识别一个字符串,如果这是一个符合我的标准的 url,但我在识别域名时遇到了困难......

域名的标准是

  1. 只有[a-z][0-9],.-
  2. 第一个字符必须是[a-z]
  3. 之前和之后.-必须是[a-z]
  4. 最小长度 1 个字符

域区域是

  1. 只有[a-z].
  2. 第一个字符必须是.
  3. 最小长度 3 个字符

格式应该是www.<domain name>.<domain region>

这是我得到的..

www.[a-z]([a-z0-9\.\-]{1,}[a-z][\.\-])+[^\.+\-].[a-z+\.]{2,}[^\.]$

这是域名

[a-z]([a-z0-9\.\-]{1,}[a-z][\.\-])+[^\.+\-]

这是针对域区域

.[a-z+\.]{2,}[^\.]$

这将是www.sample.com.sg

  • www..sample.com会因为以下原因被拒绝.sample
  • www.sample..com会因为以下原因被拒绝sample.
  • www.sample.com.sg.会因为以下原因被拒绝.com.sg.
  • www.sampl3.sample.com将因为sampl3.规则 3 被拒绝。
4

3 回答 3

3

不重新发明

这样的事情已经做过很多次了,最好利用现有的代码而不是重新学习所有的 URL 规则和规范要求。

于 2012-09-24T13:46:50.387 回答
0

编辑:

www\.(([a-z][a-z0-9]*)?[a-z][\.\-])*([a-z][a-z0-9]*)?[a-z]\.[a-z]{2,}$

疯长所以也许有更好的但是......

于 2012-09-24T14:02:17.920 回答
0

试试这个:^[a-zA-Z0-9-.]+.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$ 我没有预先测试过,所以很少法规可能是必要的

于 2012-09-24T13:47:49.970 回答