登录
首页 >  Golang >  Go问答

如何使正则表达式仅在两个以上分组匹配时才匹配?

来源:stackoverflow

时间:2024-04-18 20:33:40 288浏览 收藏

golang学习网今天将给大家带来《如何使正则表达式仅在两个以上分组匹配时才匹配?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

如何使量词仅在找到至少 2 个分组单词时才匹配?

我需要这个来匹配: ((?i:\bjack\b)|(?i:\bjill\b)|(?i:\bjohn\b)){2,}

我需要这个不匹配:

如果 >= 找到 2 个单词,则 匹配,无论顺序和情况如何

我该如何去做呢?几个小时后,我厌倦了阅读正则表达式。谢谢!


解决方案


你可以这样做:

re, _ := regexp.compile(`\b(?i:jack|jill|john)\b`)
ma := re.findallstring("jill is friends with john. but jack doesn't know.", -1)
if len(ma) < 2 //...then there aren't enough matches.

或者,我认为 (\b(?i:jack|jill|john)\b.*){2,} 可以满足您的需求。

((jack.*)|(john.*)|(jill.*)){2,}

将匹配

杰克和吉尔上山了

杰克和约翰相爱了

吉尔和约翰破坏了理想的家

但不适合

约翰了解反乌托邦的愿景

杰克在吃洋葱

理论要掌握,实操不能落!以上关于《如何使正则表达式仅在两个以上分组匹配时才匹配?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>