Preg_match获取值

时间:2016-03-14 09:36:30

标签: php preg-match

如何获得我尝试做的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)

2 个答案:

答案 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 \/