正規表現:
https?://([a-zA-Z0-9-_]{1,50}[.])*[a-zA-z0-9-_]{1,50}[.]([(org)(gov)(com)]{3}|[(us)(fi)]{2})
テスター:
http://regex.powertoy.org/
コード:
if(preg_match_all('|https?://([a-zA-Z0-9-_]{1,50}[.])*[a-zA-z0-9-_]{1,50}[.]([(org)(gov)(com)]{3}|[(us)(fi)]{2})|',$row['text'],$links))
{
print_r($links[0]);
/*for($x=0;$x<count(links[0]);$x++)
{
$row['text'] = str_replace($links[0][$x], 'link' . $link[0][$x] . 'link', $row['text'];
}*/
}else{
echo 'Failure!';
}
正規表現はテスターのURLと正常に一致しますが、HTML/PHPフロントエンドではまったく一致しません。何が問題なのかわかりません。正規表現/コードのポイントは、基本的に、サブドメインの数に関係なくURLを一致させることです。