У меня есть следующие регулярные выражения: Первый из них выдает даты со следующим шаблоном XX/XX/XXXX или XX-XX-XXX или XX XX XXX Второй - только извлекает имена месяцевОбъединить 2 регулярных выражения
bool Keywords::extractDate(const char *date)
{
const boost::regex e("^([0]?[1-9]|[1|2][0-9]|[3][0|1])([\\.\\-\\/\\ ])([0]?[1-9]|[1][0-2])([\\.\\-\\/\\ ])([0-9]{4}|[0-9]{2})$");
return boost::regex_match(date,e);
}
bool Keywords::extractDate2(const char*date2)
{
const boost::regex e("((j|J)anvier|(f|F)\u00E9vrier|(f|F)évrier|(f|F)evrier|(m|M)ars|(a|A)vril|(m|M)ai|(j|J)uin|(j|J)uillet|juillet|(a|A)o\u00FBt|(a|A)oût|aout|(s|S)eptembre|(o|O)ctobre|(n|N)ovembre|(d|D)\u00E9cembre|(d|D)écembre|(d|D)ecembre|JANVIER|FEVRIER|MARS|AVRIL|MAI|JUIN|JUILLET|AOUT|SEPTEMBRE|OCTOBRE|NOVEMBRE|DECEMBRE)");
return boost::regex_match(date2,e);
}///end function
Можно ли их комбинировать?
спасибо.
Объединить их как? Вы хотите совместить оба шаблона? Любой шаблон? Один шаблон в строке, за которым следует другой? –
Содержит ли строка, совпадающая ('XX/XX/XXXX') с названиями месяцев? –
Это не \ u00E9 == é? BTW, вы можете улучшить регулярное выражение, разложив общие части. Это улучшает откат. То есть 'Mars | Mai' =>' Ma (rs | i) '. Это означает, что регулярное выражение не должно возвращаться, когда оно встречается с i в Mai. Наконец, у вас есть избыточный «juillet», но нет «Aout». – MSalters