我一直试图在一个php项目中使用grubers latest url matching regex。Grubers新的和改进的URL识别正则表达式
为了测试它,我扔在一起的东西很简单:
$regex = "(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:"'.,<>?«»“”‘’]))";
$array = pret_match_all($regex, $theblockofurltext);
print_r($array);
的第一个问题是“会逃脱一个字符串,这取决于我包裹着的正则表达式,所以我只是删除它利用了这一点。是个人的,我永远不会有“任何地方靠近网址。这给我留下了一个新的正则表达式。
$regex = "(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'.,<>?«»“”‘’]))";
铆足了劲去,我再跑到我的小脚本,它给了我下面的错误:
Warning: preg_split() [function.preg-split]: Unknown modifier '\' in D:\wwwroot\xxx\index.php on line 14
不幸的是我在学校正则表达式类是不教任何接近这个正则表达式的水平需要,我不知道从哪里开始解决这个与PHP一起使用。任何帮助将不胜感激。毫无疑问,我可能做一些愚蠢的事了,所以请去容易对我:)
乔恩
它。正则表达式现在正在完美运行。感谢您为什么它不工作的解释:) – JonB 2010-08-26 09:25:02
@JonB:是的,我也试过了;) – 2010-08-26 09:26:34