gpt4 book ai didi

c# - 用于谷歌推荐人验证的正则表达式

转载 作者:行者123 更新时间:2023-12-02 05:26:15 24 4
gpt4 key购买 nike

我是 Regex 的新手,一直在尝试这样做,但收效甚微。

基本上我想做的是创建一个匹配任何谷歌域(如 Google.com、Google.co.uk 等)的正则表达式。

到目前为止,我有 ^http://www.google\.com/.*$,但这只匹配 Google.com。我如何修改它以允许除 com 之外的任何扩展名?

谢谢!

最佳答案

您可以使用替代,但是您必须提供您想要允许的所有 TLD:

^http://www\.google\.(?:com|co\.uk|de|es)/.*$

添加更多由竖线分隔的选项。或者,您可以允许任何 TLD(无论是否有效):

^http://www\.google\.[a-z.]+/.*$

然而,这也会匹配类似 http://www.google.myowndomain.com/ 的内容。我认为不会有任何方法只允许有效域而不列出所有域。

顺便说一句,如果您想使斜杠和末尾的路径/查询成为可选的,请将其更改为以下之一:

^http://www\.google\.(?:com|co\.uk|de|es)(?:/.*)?$
^http://www\.google\.[a-z.]+(?:/.*)?$

然后您可以更进一步,使 www. 成为可选的:

^http://(?:www\.)?google\.(?:com|co\.uk|de|es)(?:/.*)?$
^http://(?:www\.)?google\.[a-z.]+(?:/.*)?$

您知道,针对给定问题匹配所有可能但有效的 URL 并非易事,但需要仔细考虑;)。

根据您使用的语言,可能有更好的内置 URL 解析功能选项。例如,在 PHP 中,这将是一种更简单的方法:

$domain = parse_url($urlStr, PHP_URL_HOST);
$isGoogle = preg_match('/^(?:www\.)?google\.[a-z.]+/', $domain);

或者(因为无论如何这都不完美,如上所述)您可以完全放弃正则表达式并像这样进行检查:

$isGoogle = strpos($domain, 'google.') !== false;

关于c# - 用于谷歌推荐人验证的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13059353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com