很抱歉这个虚拟问题,但我是一个正则表达新手。
我想要这些比赛:
MATCH! http://www.google.com/search?q=...
NO MATCH http://www.googledummy.com/search?q=...
MATCH! http://www.google.it/search?q=...
NO MATCH! http://www.google.it/
NO MATCH! http://www.google.it/foobar
MATCH! google.it/search?q=...
MATCH! google.xxxxx/search?q=...
我的正则表达式应该是这样的吗?
google.[*$]/search
答案 0 :(得分:1)
你可能想要这样的东西:
^(?:https?://)?(?:[^.\s]+\.)*google(\.\w+){1,2}/search\?q=
这个正则表达式允许:
^
- 从头开始匹配 - 不允许部分匹配域。(?:https?://)?
- http或https协议。(?:[^.]+\.)*
- 子域名,但不包括其他字符:hello.google.com
没问题。不允许:
http://notgoogle.com/search?q=
http://example.com?google.com/search?q=
问题:
(\.\w+){1,2}
- 允许google.co.il,还有google.hackers.com。这是有问题的,除非你想要列出所有双字tld的白名单。q
查询参数可能不是第一个(但可能是其中一项要求)。\w
可能不适合在顶级域名中有效的所有字符(尽管Google不太可能购买google.קום
)示例:http://rubular.com/r/Avd5RFs3oH
结论 - 如果适用,请使用网址解析器:)
答案 1 :(得分:0)
google\.[a-z]+\/search
是否应在\/
之前使用/
或search
取决于您使用的语言。
由于SeRPRo不适用于google.co.uk,要使用它,您可以使用:
google\.[a-z]+(?:\.[a-z])?\/search
(是否有任何国家需要第三级?)
答案 2 :(得分:0)
答案 3 :(得分:0)
您可能需要以下内容:
google\.[a-zA-Z.]+/search
在您遇到像google.com.ua