在正则表达式中()中内容可以依出现顺序用$1,$2.........,$9引用
/^(.+)网址:(http\:[\w-\/\.]+\/)[^\w\-\!]+([\w\-\!]+).+$/
这个正则第一个()是"网址:"前的"(.+)",表示是网址前的所有文字,即"W3CSchool 在线教程",可以用$1引用
(http\:[\w-\/\.]+\/)表示是以http:开头,然后是字母,数字下划线连字符,/等字符,直到最后一个/,也就是http网址,可用$2引用
然后是[^\w\-\!]+,[]最前面的^表示否定,因此可以匹配不是字母,数字下划线连字符,惊叹号的所有字符组成的字符串
然后是([\w\-\!]+),匹配由字母,数字下划线连字符,惊叹号等字符组成的字符串,也就是"V-Get!",可用$3引用
然后是替换参数
栏目:$1
网址:$2
商标:$3
$1,$2,$3分别用前面指出的内容替换,
在HTML中表示换行,也就是分别在三行输出栏目,网址,商标的内容
最后的echo '
(?!pattern):
正向否定预查(negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如"Windows(?!95|98|NT|2000)"能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2000"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
$:
匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。