繁体   English   中英

用正则表达式和PHP隔离匹配项

[英]isolating a match with regular expressions and PHP

仍然在用正则表达式苦苦挣扎:)我有以下代码:

$link = '/\bhttp:\/\/.+\..+[\/\w]?\b/i';
$match = array();
if (preg_match($link, 'http://bit.ly/hghjK6 bla bla',&$match))
{
    echo 'match'.'</br>';
    print_r($match);
}

当我试图仅从字符串中提取URL时,我无法隔离它,插入$ match的值始终包含“ bla bla” taht,该字符串跟在我字符串中的URL后面,只匹配URL而不需要什么的正则表达式是什么否则会发生什么? 谢谢

$r = '`(\s|\A)(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)`ism'; // regex to match a URL

$i = preg_match_all($r, $str, $m, PREG_SET_ORDER);
if($i){
  foreach($m as $set){
    // each $set in $m is a group of match
    // complete URL is
    echo $set[2].'://'.$set[3];
  } 
}

这与文本中的所有URL匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM