RE2环境下无需负向预查匹配指定Google域名的正则方案咨询
解决方案
针对你的需求,这里提供一个符合RE2语法、无需负向预查的正则表达式,可匹配所有含google的域名并排除google.com和google.com.au:
google\.com\.(?:[a-z]{1,1}|[a-z]{3,}|[a-z][^u]|[^a][a-z])(?:\.[a-z]+)*|google\.(?:[a-z]{1,2}|[a-z]{4,}|[a-z][^o][^m]|[a-z][^m]|[^c][a-z]+)(?:\.[a-z]+)*
正则说明
这个表达式拆分为两个互补的匹配分支,覆盖所有允许的情况:
第一分支(匹配google.com.xxx类域名):
google\.com\.:匹配google.com.前缀(?:[a-z]{1,1}|[a-z]{3,}|[a-z][^u]|[^a][a-z]):确保后续后缀不是au(排除google.com.au),包含单字符后缀、长度≥3的后缀、首字符非a或尾字符非u的双字符后缀(?:\.[a-z]+)*:支持多级后缀(如google.com.co.uk)
第二分支(匹配google.xxx类域名,xxx≠com):
google\.:匹配google.前缀(?:[a-z]{1,2}|[a-z]{4,}|[a-z][^o][^m]|[a-z][^m]|[^c][a-z]+):确保后缀不是com,包含长度≤2的后缀、长度≥4的后缀、长度为3但非com的后缀(?:\.[a-z]+)*:支持多级后缀(如google.co.uk)
测试验证
该正则可正确匹配:
google.org、google.uk、google.cngoogle.com.pk、google.com.cn、google.com.co.ukgoogle.net、google.co.uk
同时会排除:
google.com、google.com.au
内容的提问来源于stack exchange,提问作者YRK
相关产品推荐
相关产品推荐

