我想知道你是否有人可以构建一个正则表达式,可以检测一个人是否搜索“site:cnn.com”或“site:www.globe.com.ph/”之类的内容。我一直在努力解决这个问题。非常感谢提前!
编辑:抱歉忘记提及我的脚本是用PHP编写的。
答案 0 :(得分:1)
好的,对于输入到任意文本字段,可以使用以下简单的内容:
\bsite:(\S+)
其中括号将捕获他们尝试搜索的任何网站/域。它不会将其验证为有效,但验证网址/域是复杂的,并且有很多容易使用的可复制的正则表达式,例如,有一个here。
答案 1 :(得分:0)
你有什么对抗?引用网址?
假设您正在匹配看起来像这样的引用网址:
http://www.google.com/search?client=safari&rls=en-us&q=whatever+site:foo.com&ie=UTF-8&oe=UTF-8
像这样的正则表达式可以解决这个问题:
\bsite(?:\:|%3[aA])(?:(?!(?:%20|\+|&|$)).)+
注意:
答案 2 :(得分:0)
不,不是推荐人网址。我的PHP脚本基本上吐出有关域的信息(例如反向链接,pagerank等),我需要该正则表达式,以便它知道用户正在搜索什么。如果用户输入的内容与正则表达式不匹配,则会进行常规的Web搜索。
答案 3 :(得分:0)
如果这是你要做的全部,我想我会采取更简单的方法而且只是这样做:
$entry = $_REQUEST['q'];
$tokens = split(':', trim($entry));
if (1 < count($tokens) && strtolower($tokens[0]) == 'site')
$site = $tokens[1];