Здравствуйте помогите написать регулярное выражение использую boost:
bool ValidateByRegex(CString & text, CString & regexp)
{
try
{
if(!regexp.IsEmpty())
{
boost::regex r((LPCTSTR)(CString(TEXT("("))+regexp+TEXT(")")) );
boost::cmatch what;
if(!boost::regex_match((LPCTSTR)text, what, r))
return false;
}
}
catch (...)
{
return false;
}
return true;
}
Мне нужно так:
Строка считается правильной, если первый символ -1, затем может идти любое количество символов, не являющихся цифрой, потом идет -5, а заним также любое количество символов, не являющихся цифрами пробую так:
regex="[-]{1}[1]{1}[^0-9]*[-]{1}[5]{1}[^0-9]?";
но правильная сторка, не проходит проверку
Здравствуйте, Аноним, Вы писали:
А>Строка считается правильной, если первый символ -1, затем может идти любое количество символов, не являющихся цифрой, потом идет -5, а заним также любое количество символов, не являющихся цифрами пробую так:
А>А> regex="[-]{1}[1]{1}[^0-9]*[-]{1}[5]{1}[^0-9]?";
А>
А>но правильная сторка, не проходит проверку
-1[^\d]*-5[^\d]*
?
АК>АК>-1[^\d]*-5[^\d]*
АК>
АК>?
Так тоже не проходит проверку, а вот так работает:
[-]{1}[1]{1}[^0-9]*[-]{1}[5]{1}[^0-9]*";
Здравствуйте, Аноним, Вы писали:
АК>>АК>>-1[^\d]*-5[^\d]*
АК>>
АК>>?
А>Так тоже не проходит проверку, а вот так работает:
А>А>[-]{1}[1]{1}[^0-9]*[-]{1}[5]{1}[^0-9]*";
А>
Может слэш забыл экранировать? На каком тесте не работает?