我在regex php中有问题。需要正则表达式代码识别字符串中的链接 我的链接:https://mywebsite.com/cargallery/subcat/
if( preg_match( '/(http|ftp|https):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))(([^"]*cargallery[^"])*([\w_-]+)(\/|))?/', $requested_url,$mactches)) {
// if url = https://mywebsite.com/cargallery/subcat/
echo "true";
}else {
//if url= https://mywebsite.com/cargallery/subcat/dasdsad
// or https://mywebsite.com/cargallery
// or https://mywebsite.com
echo "false";
}
答案 0 :(得分:2)
只需使用if来查看是否匹配。无需使其比现在更复杂。
if($requested_url == "https://mywebsite.com/cargallery/$subcat/"){
echo "true";
}else{
echo "false";
}
答案 1 :(得分:1)
对于正则表达式,您可以使用anchors声明字符串的开始^
和结束$
。
没有锚,您的正则表达式将匹配,例如https://mywebsite.com
,而preg_match将返回1。
^(http|ftp|https):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))(([^"]*cargallery[^"])*([\w_-]+)(\/|))?$