首页 > 解决方案 > C++:正则表达式模式

问题描述

我得到了一个正则表达式模式:(~[AZ]){10,30}(感谢 KekuSemau)。我需要编辑它,所以它会跳过 1 个字母。所以它会像下面一样。

Input:    CABBYCRDCEBFYGGHQIPJOK 
Output:    A B C D E F G H I J K

标签: c++regex

解决方案


每次迭代只需匹配两个字母,但只捕获第二部分。

(?:~[A-Z](~[A-Z])){5,15}

直播:https ://regex101.com/r/pIAxH8/1

我将重复计数({} 中的位)减少了一半,因为新的正则表达式一次匹配两个。

?:in位禁用组的(?:...)捕获。


推荐阅读