Регулярные выражения си
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Регулярные выражения си - 2011-07-04 13:32:24.773333
|
|
|
ololo__schoolboy
Сообщений: 118
Оценки: 0
Присоединился: 2011-06-14 12:42:52.573333
|
bool preg_match(char *pattern, char *subject, char *match)
{
int ovector[2];
pcre *re = pcre_compile
(pattern, 0,//PCRE_MULTILINE
0, 0,
0);
int result = pcre_exec
(re, 0,
subject, strlen(subject),
0, 0,
ovector, 2);
if(result<0)
return false;
else
strncpy(match, &subject[ovector[0]], ovector[1]-ovector[0]);
return true;
}
int main()
{
char result[32];
if(preg_match(".+!!!", "hello world!!!", result))
cout<<result<<endl;
else
cout<<"Not found"<<endl;
cin.get();
return 0;
}
Почему пишет Not found ?
|
|
|
RE: Регулярные выражения си - 2011-07-07 00:30:31.693333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
pcre *pcre_compile(const char *pattern, int options,
const char **errptr, int *erroffset,
const unsigned char *tableptr); Цитата из документации:quote:
If errptr is NULL, pcre_compile() returns NULL immediately. Мне кажется, это всё объясняет.
|
|
|
RE: Регулярные выражения си - 2011-07-07 09:09:45.383333
|
|
|
ololo__schoolboy
Сообщений: 118
Оценки: 0
Присоединился: 2011-06-14 12:42:52.573333
|
Спасибо
|
|
|
|
|