Php preg_match()未知修饰符“[”帮助
我用这个正则表达式获取YouTube视频ID:Php preg_match()未知修饰符“[”帮助,php,regex,Php,Regex,我用这个正则表达式获取YouTube视频ID: (?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+ 我从那里得到: 问题是我得到preg_match未知修饰符“[”警告 我知道我必须把regex分隔符括起来,但我不知道怎么做 有什么帮助吗?请尝试以下操作: <?php $str = "http://www.youtube.com/ytscreeningroom?v=NRHVz
(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+
我从那里得到:
问题是我得到preg_match未知修饰符“[”警告
我知道我必须把regex分隔符括起来,但我不知道怎么做
有什么帮助吗?请尝试以下操作:
<?php
$str = "http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I";
$pattern = '#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+#';
preg_match($pattern, $str, $matches);
print_r($matches);
?>
注意,我在这里使用分隔符是因为上面的正则表达式包含正斜杠,而转义斜杠会使表达式更难读取。这只会将其清除几个像素。请尝试以下操作:
<?php
$str = "http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I";
$pattern = '#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+#';
preg_match($pattern, $str, $matches);
print_r($matches);
?>
注意,我在这里使用分隔符是因为上面的正则表达式包含正向斜杠,转义斜杠使表达式更难读取。这只会将其清除几个像素。如果您不喜欢分隔符:使用,它的工作原理与preg_match完全相同,但不需要分隔符
$str = "http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I";
$pattern = '(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+';
// ^ no delimiters :) ^
这导致
string(11) "NRHVzbJVx8I"
如果您不喜欢分隔符:use,它的工作原理与preg_match完全相同,但不需要分隔符
$str = "http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I";
$pattern = '(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+';
// ^ no delimiters :) ^
这导致
string(11) "NRHVzbJVx8I"
在正则表达式中添加正斜杠分隔符您是否在代码中分隔正则表达式?例如/expression/在正则表达式中添加正斜杠分隔符您是否在代码中分隔正则表达式?例如/expression/否您没有,我修改了代码以反映您正在寻找的内容。不,您没有,我修改了代码以反映您正在寻找的内容或