首页 / 帖子
有个正则表达式 看不懂 请教

在drupal的bootstrap.inc的711行

<?php

&& preg_match('/^\[?(?:[a-zA-Z0-9-:\]_]+\.?)+$/', $host);

?>

请问:

1, 为啥要验证[这个符号呢  -- \[?

2, 为啥要验证?呢 -- (?

邀请赵高欣哦 谢谢


2个答案
老葛
发布于:2015-03-24 14:02

先插句嘴:

(?:,这里的?:代表不被捕获的意思,不是匹配?哦

刘伯彪
发布于:2015-03-24 17:23

1. 验证[这个符号,是IPv6的URL地址
比如: 

http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
http://[1080:0:0:0:8:800:200C:417A]/index.html 

2. 参考 @苏北老农的答案。