2016-02-08 5 views
1

Я полагаю, это что-то очень глупое, однако это не соответствует, и я понятия не имею, почему. Я скомпилируюсь успешно и все, но это просто не соответствует. Я уже использовал RE(".*"), но он не работает. Система OS X (установленный ПКс с использованием brew).PCRE не соответствует

std::string s; 
if (pcrecpp::RE("h.*o").FullMatch("hello", &s)) 
{ 
    std::cout << "Successful match " << s << std::endl; 
} 
+0

Обратите внимание, что в реальной жизни вы можете использовать метод «FullMatch» без второго параметра и печатать исходную строку, когда вам не нужно извлекать подшаблоны. –

ответ

2

Вы пытаетесь извлечь один подшаблон (в & с), но не включены какими-либо круглыми скобками, чтобы захватить этот подшаблон. Попробуйте это (непроверенные, заметьте круглые скобки).

std::string s; 
if (pcrecpp::RE("(h.*o)").FullMatch("hello", &s)) 
{ 
    std::cout << "Successful match " << s << std::endl; 
} 

документация на http://www.pcre.org/original/doc/html/pcrecpp.html имеет аналогичный пример, заявив:

Пример: терпит неудачу, потому что не хватает суб-моделей:!
pcrecpp :: RE ("\ ш +: \ d + "). FullMatch (" ruby: 1234 ", & s);

+0

Да, вот и все, я, вероятно, нашел бы это через некоторое время, но прежде чем вы начнете инвестировать, сначала вы хотите увидеть рабочий пример :-) – hgiesel

Смежные вопросы