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

如果找到至少 2 个分组词,如何使量词仅匹配?

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

http://img.mukewang.com/64783b7900014aae04670105.jpg

我需要这个不匹配:

http://img.mukewang.com/64783b840001b1a604550151.jpg

Match if >= 2 of the words are found, in any order and case

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




绝地无双
浏览 103回答 2
2回答

慕田峪9158850

你可以这样做: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,}将匹配杰克和吉尔上山了杰克和约翰相爱了吉尔和约翰破坏了理想的家但不是为了约翰深知反乌托邦的愿景杰克在吃洋葱
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go