Php 正在尝试使用reg-ex获取基本url
我需要匹配“基本”url,我的意思是:Php 正在尝试使用reg-ex获取基本url,php,regex,pattern-matching,Php,Regex,Pattern Matching,我需要匹配“基本”url,我的意思是: Not match --> http://google.com Not match --> http://www.google.com Not match --> www.google.com Match! --> google.com 我试着用一种否定的方法来确认没有http://或www,但它似乎不能正常工作。这必须只使用一个正则表达式吗? 您可以拥有第一个与找到的所有URL匹配的正则表达式。诸如此类: \b.+?\.\w{2
Not match --> http://google.com
Not match --> http://www.google.com
Not match --> www.google.com
Match! --> google.com
我试着用一种否定的方法来确认没有http://或www,但它似乎不能正常工作。这必须只使用一个正则表达式吗? 您可以拥有第一个与找到的所有URL匹配的正则表达式。诸如此类:
\b.+?\.\w{2,4}\b
然后筛选所有匹配项并保留不匹配项,如下所示:
^(http://|www)
尽管说实话,我不会使用正则表达式,除非这是绝对必要的
注意:您总是可以找到更好的正则表达式来匹配URL。这里的问题是,它们可能不是以
http://
或www
开头,因此我们不能对regex进行太多限制。准备好进行其他完全不是URL的匹配,例如:
昨天。但是
中的我昨天在那里。但是没有人看到我它需要在一个正则表达式中吗?你试过什么正则表达式?你可能想看看。针对这个问题的正则表达式解决方案可能会变得非常混乱。google.com
作为一个url意味着与http://google.com
。“基本域”可能比完全错误的“基本url”更好。我同意,我已经想到它们不是从http://或www开始的,我想我会想出一些办法,但你是对的。由于它是一个简单的“输入URL字段”,我想每个URL都必须是reg ex,而不是手动查看。谢谢如果这只是url的文本字段,您可以进行一些其他验证(查看是否包含空格等),并将\b
替换为^
和$
。您可以阅读URL中接受哪些字符的指南。