正则条件匹配需求:按文本前缀决定是否校验后缀
解决方案
完全可行,用正则的分支(|)语法就能轻松实现这个需求,不需要复杂的条件判断也能搞定。
直接用这个正则:
^(release:.*$|[a-zA-Z]+:.*#[0-9]+$)
正则说明
^release:.*$:专门匹配以release:开头的文本,不管后面内容是什么,都能通过校验|:表示逻辑“或”,满足任意一个分支的规则就匹配成功^[a-zA-Z]+:.*#[0-9]+$:就是你原来的正则,匹配以任意英文字母开头的前缀(比如feature:),且结尾必须带有#加一串数字的文本
测试验证
- 能匹配:
feature: My name is Oliver #9123(符合第二个分支规则) - 能匹配:
release: My name is oliver(符合第一个分支规则)
如果需要更严谨的前缀校验(比如确保前缀是纯字母加冒号、中间无空格),这个正则也完全适用,适配你需求里的feature:、release:这类前缀格式。
内容的提问来源于stack exchange,提问作者PZiaugra
相关产品推荐
相关产品推荐

