You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于PCRE/.NET 4.7匹配以global开头行内独立域名

匹配global开头行中独立域名的正则方案

嘿,针对你要仅提取global开头行里的独立域名、还要兼容PCRE/.NET 4.7和BMC类工具的需求,我整理了一套靠谱的正则方案:

正则表达式

\b[a-z0-9.-]+\.[a-z]{2,}\b(?<=(?:^\s*global domain-name\b)(?:\s+\w[\w.-]*)*\s)(?=(?:\s+\w[\w.-]*)*\s*$)

需要搭配**多行模式(m修饰符)**使用,若域名可能包含大写字母,可额外添加i修饰符开启不区分大小写匹配。

正则拆解(为什么这么写)

  • \b[a-z0-9.-]+\.[a-z]{2,}\b:精准匹配独立域名——\b确保不会匹配域名的一部分,[a-z0-9.-]+覆盖域名的主体部分,\.[a-z]{2,}匹配至少2个字符的顶级域名(比如.com、.local)
  • (?<=(?:^\s*global domain-name\b)(?:\s+\w[\w.-]*)*\s):正向后行断言,用来锁定域名所在行必须以global domain-name开头。^\s*忽略行首可能的空白,(?:\s+\w[\w.-]*)*允许匹配当前域名之前的其他同域名,这样该行里的每个域名都能被单独匹配到
  • (?=(?:\s+\w[\w.-]*)*\s*$):正向先行断言,确保当前域名后面是该行剩余的域名或行尾,彻底排除其他行(比如upstream开头的行)里的域名
  • m修饰符:开启后^和$会匹配每行的开头和结尾,这是实现按行筛选的核心

使用提示

  • 在BMC或其他PCRE类工具里,记得找到“多行模式”的选项勾选上,或者在正则末尾加上(?m)来启用
  • .NET 4.7里直接在Regex构造函数中指定RegexOptions.Multiline即可
  • 这个正则的匹配结果是单个独立域名,每次匹配返回一个符合条件的域名,完全满足你“独立匹配而非分组匹配”的要求

内容的提问来源于stack exchange,提问作者Brian Mitchell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:34:18