preg_match 麻烦
我正在尝试将 Youtube URL 与正则表达式进行匹配,看看它是否有效。这是我的代码:
if(preg_match('\bhttp://youtube.com/watch\?v=.*\b', $link))
{
echo "matched youtube";
}
但我遇到了一个错误:
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in C:\xampp\htdocs\ajax\youtube.php on line 22
我承认我是正则表达式的新手,我不太了解它们,但我在这样做时正在努力学习。我使用此在线正则表达式工具制作了上述正则表达式:
和它在那里工作。那么我做错了什么,有没有更好的方法来验证 YouTube URL?
谢谢。 :)
I am trying to match a Youtube URL with regex to see if it is valid. This is my code:
if(preg_match('\bhttp://youtube.com/watch\?v=.*\b', $link))
{
echo "matched youtube";
}
But I'm getting an error:
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in C:\xampp\htdocs\ajax\youtube.php on line 22
I'll admit I am a complete novice to regular expressions and I don't understand them much but I am trying to learn as I do this. I made the above regex using this online regex tool:
and it works there. So what am I doing wrong and is there a better way to validate a youtube URL?
Thanks. :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这里确实不需要 preg_match:
There's really no need for preg_match here:
PCRE 需要 分隔符 来分隔正则表达式和可选的 修饰符。
在这种情况下,假定
\
但\
不是有效的分隔符(请参阅错误消息)。使用不同的字符,如~
:PCRE require delimiters that separate the regular expressions and optional modifiers.
In this case the
\
is assumed but\
is not a valid delimiter (see error message). Use a different character like~
:您应该在正则表达式中添加附加分隔符。这用于提供可选参数:
符号
/
通常用作正则表达式分隔符,但在您的情况下,它将强制内部/
被转义。因此,为了获得更清晰的视图,我建议使用"
。You should add addition delimeters to your regexp. This is used to supply optional parameters:
Symbol
/
is usually used as regexp delimeter, but in your case it'll force inner/
to be escaped. So for more clear view I suggest to use"
.当使用 preg_match 时,正则表达式需要用适当的分隔符括起来。
例如:
在您的示例中 \b 代表单词边界,这不是有效的字母数字分隔符,因此会出现错误消息
When using preg_match, then the regexp needs to be enclosed with proper delimiters.
For example:
In your example \b stands for word boundary, this is not a valid alphanumeric delimiter, hence the error message