Php 如何使用正则表达式排除YouTube链接?
知道为什么这个正则表达式不起作用吗Php 如何使用正则表达式排除YouTube链接?,php,regex,url,Php,Regex,Url,知道为什么这个正则表达式不起作用吗 '#((http://|www.)(.*^(youtube)\.(com|org|co.il|net|us|ws|info|tv|me|tk|co.uk).*))#' 我想查找不属于YouTube的链接。您的正则表达式中有此段:^(YouTube) 请理解,这不会否定字符串youtube 您将需要负向前看或向后看来否定匹配的文本,如下所示: (?!youtube) 或 但是,您需要在问题中提供输入字符串的示例 在此处阅读有关环顾四周的信息: 我会走相反的
'#((http://|www.)(.*^(youtube)\.(com|org|co.il|net|us|ws|info|tv|me|tk|co.uk).*))#'
我想查找不属于YouTube的链接。您的正则表达式中有此段:
^(YouTube)
请理解,这不会否定字符串youtube
您将需要负向前看或向后看来否定匹配的文本,如下所示:
(?!youtube)
或
但是,您需要在问题中提供输入字符串的示例
- 在此处阅读有关环顾四周的信息:
- 我会走相反的路
$youtubePattern = '%(https?:\/\/(www\.)?youtube\.([a-z]{2,3}).*)%six';
if (!preg_match($youtubePattern, $subject)) {
// not youtube, do whatever...
}
为什么不正确地从
PHP\u URL\u主机检查?我建议您不要为自己创建。如果这个答案对您有效,那么您可以通过单击这个答案旁边的勾号将其标记为已接受吗?
#((http://|www.)((?!youtube)[^.]+\.(com|org|co.il|net|us|ws|info|tv|me|tk|co.uk).*))#
$youtubePattern = '%(https?:\/\/(www\.)?youtube\.([a-z]{2,3}).*)%six';
if (!preg_match($youtubePattern, $subject)) {
// not youtube, do whatever...
}