正则表达式查找忽略几个字符的子字符串

时间:2019-03-11 16:13:32

标签: c++

我的应用程序中可能没有几个有效的字符串。这些有效的字符串可能包括:

 "attached:yes blocked:yes"        #No ()
 "attached:yes blocked:(yes)"      #Blocked has ()
 "attached:(yes) blocked:yes"      #Attached has ()
 "attached:(yes) blocked:(yes)"    #Both have ()

如果在以上任何一个字符串中找到blocked:(yes)blocked:yes,我都希望得到匹配部分的开始和结束的索引。因此基本上忽略()

示例

attached:yes blocked:yes应该为blocked:yes的子字符串(13, 24)

给出两个索引的开始和结尾

attached:yes blocked:(yes)应该给blocked:(yes)子字符串(13, 26)

的两个索引开头和结尾

1 个答案:

答案 0 :(得分:0)

1st。找出可以使用什么库来利用正则表达式。

第二。下面是正则表达式的示例。|

我在正则表达式中要说的是获得第1组和第2组,其中值可以是'yes'或'(yes)'

  

已附加:([[(]?yes [)]?)已阻止:([(]?yes [)]?)

enter image description here 更确定您将使用正则表达式库:

#include <regex>
using namespace std;

以下是一些有关C ++中正则表达式的链接:

让我知道这是否为您指明了正确的方向,否则我可以删除此答案。

相关问题