Ejemplo n.º 1
0
search_result Parser::search(string expression, string target)
{
    setRegEx(expression);

    if (target.empty())
        target = source;

    search_result res;
    smatch match;
    while (!target.empty() && regex_search(target, match, exp))
    {
        vector<string> tmp;
        for (string x:match)
            tmp.push_back(x);
        res.push_back(tmp);
        target = match.suffix().str();
        //cout << "DEBUG: " << target << endl;
    }

    return res;
}
Ejemplo n.º 2
0
bool Parser::match(string expression, string *ptarget, smatch *res)
{
    setRegEx(expression);

    string target;
    if (ptarget == 0)
        target = source;
    else
        target = *ptarget;

    //cout << "STR: " << target << endl;
    bool ret;
    if (res != 0)
        ret = regex_search(target, *res, exp);
    else
        ret = regex_search(target, exp);

    if (ret)
        return ret;


    return false;
}
Ejemplo n.º 3
0
string Parser::replace(string expression, string replacement, string target)
{
    string *tmp;

    setRegEx(expression);

    if (target.empty())
        tmp = &source;
    else
        tmp = &target;

    try
    {
        *tmp = regex_replace(*tmp, exp, replacement);
    }
    catch (...)
    {
        cout << "ERROR: replace failed." << endl;
        return 0;
    }


    return target;
}
Ejemplo n.º 4
0
 bool DigestionEnzyme::setValueFromFile(const String& key, const String& value)
 {
   if (key.hasSuffix(":Name"))
 {
     setName(value);
     return true;
 }
   if (key.hasSuffix(":RegEx"))
 {
     setRegEx(value);
     return true;
 }
   if (key.hasSuffix(":RegExDescription"))
 {
     setRegExDescription(value);
     return true;
 }
   if (key.hasSubstring(":Synonyms:"))
 {
     addSynonym(value);
     return true;
 }
   return false;
 }