使用正则表达式提取连字符分隔的最后子串(排除.groups后缀)
提取组名称中permission子串的正则方案
针对你给出的两种组名格式:
gcp-edp-platform-dgov-nonprod-oneil-(permission)
gcp-edp-platform-dgov-prod-atp-(permission).groups
要提取不含.groups后缀的纯permission子串,可以用以下两种正则方案:
方案1:通用匹配(兼容permission含点号的情况)
.*-(.*?)(?:\.groups)?$
.*-:匹配到最后一个连字符为止的全部内容(.*?):非贪婪模式捕获目标子串,确保不会包含后续的.groups(?:\.groups)?$:非捕获组,匹配可选的.groups后缀,$锚定到字符串结尾,保证只处理末尾的后缀
方案2:精准匹配(permission不含点号时推荐)
如果你的permission子串本身不会包含点号,用这个正则效率更高:
.*-([^.]+)(?:\.groups)?$
([^.]+):直接捕获所有非点号的字符,从根源上排除.groups部分
这两个正则都能从两种格式的组名中,准确提取出纯permission子串,不会附带.groups后缀。
内容的提问来源于stack exchange,提问作者unnest_me
相关产品推荐
相关产品推荐

