| jybox |
2012-10-20 19:02 |
匹配域名列表的正则表达式
原则:
* 允许主机名、ip、域名 * 允许且仅允许开头加*.作为通配符
匹配通配符:
*(\*\.)? 匹配第一个主机名,这也是唯一一个必须的部分,这样的设计保证了连字符前后必须有字母或数字
[A-Za-z0-9]+(\-[A-Za-z0-9]+)* 匹配之后每个点和其后的主机名,可以有任意个
(\.[A-Za-z0-9]+(\-[A-Za-z0-9]+)*)* 连起来:
*(\*\.)?[A-Za-z0-9]+(\-[A-Za-z0-9]+)*(\.[A-Za-z0-9]+(\-[A-Za-z0-9]+)*)* 匹配以空格隔开的域名列表,设上面的正则为DOMAIN
^ *DOMAIN( DOMAIN) *$ 展开,最终结果: ^ *(\*\.)?[A-Za-z0-9]+(\-[A-Za-z0-9]+)*(\.[A-Za-z0-9]+(\-[A-Za-z0-9]+)*)*( +*(\*\.)?[A-Za-z0-9]+(\-[A-Za-z0-9]+)*(\.[A-Za-z0-9]+(\-[A-Za-z0-9]+)*)*) *$ |
|