/ / съвпадение / извличане в c с regex.h - c, regex, string

съвпадение на шаблона / извличане в c с помощта на regex.h - c, regex, string

Имам нужда от помощ за извличане на подстрока от низс използване на regex.h на C. В този пример се опитвам да извлича всички появявания на символ "e" от низ "phone". За съжаление, аз се забивам идентифициране на компенсации на тези знаци. По-долу съм в списъка с код:

#include <stdio.h>
#include <regex.h>

int main(void) {
const int size=10;
regex_t regex;
regmatch_t matchStruct[size];

char pattern[] = "(e)";
char str[] = "telephone";

int failure = regcomp(&regex, pattern, REG_EXTENDED);
if (failure) {
printf("Cannot compile");
}

int matchFailure = regexec(&regex, pattern, size, matchStruct, 0);
if (!matchFailure) {
printf("nMatch!!");
} else {
printf("NO Match!!");
}

return 0;
}

Така че в ръководството на GNU, трябва да получа всички появявания на "e", когато знакът е поставен в скоби.

По същество искам да видя нещо като:

matchStruct[1].rm_so = 1;
matchStruct[1].rm_so = 2;

matchStruct[2].rm_so = 4;
matchStruct[2].rm_so = 5;

matchStruct[3].rm_so = 7;
matchStruct[3].rm_so = 8;

или нещо подобно. Някакъв съвет?

Отговори:

0 за отговор № 1

Моля, обърнете внимание, че всъщност не сравнявате компилирания regex с str ("phone"), а по-скоро в обикновен текст pattern, Проверете втория си атрибут regexec, Това определено, продължете например с "regex в C език с помощта на функции regcomp и regexec превключва между първата и втората среща"където отговорът на въпроса ви вече е даден."