如何获得我尝试做的preg_match示例的确切方式
网址网址:www.website.com/go/from-youtube-com(这只是显示从youtube添加的视频)
$pattern = '/from-(.*?)-com/is';
if(preg_match( $pattern, $search_query, $ar)) {
$webvideos = $ar[1] . '.com';
$webstatus = 1;
}
这个命令正在运行,但我测试了,如果我做了网址:www.website.com/go/asdasd-from-youtube-com或www.website.com/go/asdasd-from-youtube-com-ewrwer仍然显示来自YouTube的视频,但通常需要显示错误...
编辑:
$search_query = 'from-youtube-com'; // (good url)
$search_query = 'dasdasd-from-youtube-com'; // (bad url)
$search_query = 'dasdasd-from-youtube-com-dasdsa'; // (bad url)
答案 0 :(得分:2)
正则表达式中的“/”是分隔符
如果你想在正则表达式中使用斜杠,你必须选择另一个分隔符,如“!” :
$pattern = '!/from-(.*?)-com/!is';
答案 1 :(得分:1)
正如@mmm已经指出的那样,你必须以特殊的方式处理/
字符。
a)为你的正则表达式使用另一个分隔符,如
$pattern = '#/from-(.*?)-com/#is'; // use # instead of / delimiter
或b)逃避
中的/
$pattern = '/\/from-(.*?)-com\//is'; // escape/ by using \/