如何使用正则表达式提取第4个连字符后的末尾子串?
适用的简易正则表达式
这里有两个简洁的正则方案,都能满足你的需求:
直接匹配末尾目标子串(更简易):
使用-(prod|nonprod)$,其中:-匹配目标子串前的连字符(prod|nonprod)精准匹配你要提取的两种字符串,通过捕获组可直接获取结果$确保匹配的是字符串的最后一部分,符合“整个字符串最后一个子串”的要求
如果不想包含前面的连字符,可改用正向零宽断言:
(?<=-)(prod|nonprod)$,这个表达式会直接匹配到prod或nonprod本身,无需额外处理捕获组。严格匹配第4个连字符后的内容:
要是需要严格对应“第4个连字符之后”的规则,可用^[^-]+-[^-]+-[^-]+-[^-]+-(prod|nonprod)$,其中[^-]+匹配每个连字符分隔的段落,连续4个对应前4段,最后捕获目标子串。
实际场景里第一种方案更实用,毕竟目标本身就是字符串的最后一段,不用额外关心前面的结构细节。
内容的提问来源于stack exchange,提问作者unnest_me
相关产品推荐
相关产品推荐

