$str = 'window.location.href="http://my-site.com";'
我想从$str
中提取网址。 preg_match()
我不是那么好。但是使用以下代码:
preg_match('/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/', $str, $link);
if (empty($link[0])) {
echo "Nothing found!";
} else {
echo $link[0];
}
我能够得到结果http://my-site.com";
。我想自定义preg_match()以从结果中排除";
。请帮忙!
答案 0 :(得分:0)
如果你对preg_ *感到不舒服,那么试着保持简单。对于那些简单的事情来说,加载正则表达式引擎似乎有点不必要的开销。
请尝试以下方法: -
$str = 'window.location.href="http://my-site.com";';
$p1 = strpos($str, 'href="') + strlen('href="');
$p2 = strpos($str, '";', $p1);
$url = substr($str,$p1,$p2-$p1);
echo $p1 .PHP_EOL;
echo $p2 .PHP_EOL;
echo $url;
以下是
22
40
http://my-site.com
即href="
和";
答案 1 :(得分:0)
试试这个:
preg_match('/^window.location.href="([^"]+)";$/', $str, $link);
答案 2 :(得分:0)
<?php
$str = 'window.location.href="http://my-site.com";';
preg_match('/window\.location\.href="(.*?)";/', $str, $result);
echo $result[1];
//http://my-site.com
>?