如下字符串:
   
string s="1.药源性疾病与ADR不同的是:A.合格药品在正常用法用量下出现的与用药目的无关的或意外的有害反应B.引起药源性疾病并不限于正常用法和用量,还包括超量、误服、错用以及不正常使用药物所造成的损害C.假药和劣药出现的与用药目的无关的或意外的有害反应D.药源性疾病反应程度可轻可重。"希望可以提取出:string txt[5]={题目,A选项,B选项,C选项,D选项} 
求正则表达式  regex(szReg);时间紧迫,万分感谢~

解决方案 »

  1.   

    有发帖就有回帖,刚才的问题自己看资料总算解决啦,还在选项中特意加上A. B.作为测试,结果一样可以正确处理。#include <boost/regex.hpp>
    #include <string>
    #include <iostream>
    using namespace std;
    using namespace boost;int main(int argc, char * argv[])
    {
    string s= "68.药源性疾病与ADR不同的是:A.合格药品(B.)在(C.)正常(D.)用法用量下出现B.引
    起药源性疾病并不限于正常用法和用量C.假药和劣药出现的与用药或意外的有害反应D.错用以及不正常使用药物所造成的损害¦";
        regex szReg("(.+)A(.+)B(.+)C(.+)D(.+)");
        cmatch mat;
        if (regex_search(s.c_str(), mat, szReg))  
    {
    for(int i = 0 ; i < mat.size(); i++)  
    {
    cout<<mat[i].str()<<endl;  
            }
        }
        return 0;
    }