正则表达式匹配序列

Cod*_*sSC 1 c++ regex string boost match

我想要一个regeular表达式来匹配序列.我希望正则表达式匹配的顺序是NP,所以要确保字符串一直向下,在N之后有一个P,而在P之前有一个N

1)NPNPNPNP =正确

2)NPNPPNP =不正确

抱歉男孩我错过了第三部分与第三部分相关的部分

3)NNNPNPNNP =正确所以可以有多个N但是在N的末尾必须有一个如下所示的P

但我不认为我的正则表达是正确的,有人能告诉我我哪里出错了吗?

std::string a ("NPNPNPPN");
 boost::regex const string_matcher("\(NP\)*");
 if(boost::regex_match(a,string_matcher))
 {
     DCS_LOG_DEBUG("Yes it Matches ");
 }
 else
 {
     DCS_LOG_DEBUG("No it does not Match");
 }
Run Code Online (Sandbox Code Playgroud)

del*_*ree 5

编辑:根据需求变更和评论和建议进行更新

^(N+P)+$
Run Code Online (Sandbox Code Playgroud)

这是一些测试

进一步阅读正则表达式http://www.regular-expressions.info/tutorial.html