【问题标题】:How do I use regex to exclude YouTube links?如何使用正则表达式排除 YouTube 链接?
【发布时间】:2013-04-12 19:41:57
【问题描述】:

知道为什么这个正则表达式不起作用吗?

'#((http://|www.)(.*^(youtube)\.(com|org|co.il|net|us|ws|info|tv|me|tk|co.uk).*))#'

我想查找不属于 YouTube 的链接。

【问题讨论】:

标签: php regex url


【解决方案1】:

您的正则表达式中有此段:^(youtube)

请理解这不会否定字符串youtube。

您将需要否定前瞻或后视来否定匹配这样的文本:

(?!youtube)

或

(?<!youtube)

对于您的正则表达式,它可以是:

#((http://|www.)((?!youtube)[^.]+\.(com|org|co.il|net|us|ws|info|tv|me|tk|co.uk).*))#

但是,您需要在问题中提供输入字符串的示例。

【讨论】:

  • 如果此答案对您有用,那么您能否通过单击此答案旁边的勾号将其标记为已接受?
【解决方案2】:

我会走相反的路

$youtubePattern = '%(https?:\/\/(www\.)?youtube\.([a-z]{2,3}).*)%six';

if (!preg_match($youtubePattern, $subject)) {
   // not youtube, do whatever...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多