Я пишу программу C для фильтрации только тех сообщений, которые поступают с верхних уровней моего программного обеспечения и имеют совпадающие значения для указанных полей c. Я использую следующий код. Как я могу предоставить выражение регулярного выражения для соответствия нескольким шаблонам. А также, если подстрока соответствует какому-либо из шаблонов, то я хочу сравнить ее со значением, равным указанному значению (строка, указанная пользовательским вводом), перед ним и посчитать такие экземпляры. Скажем, в следующем коде:
#define MAXMATCH 100
char *bytes=??? [ Regex expression to match for bytes: or bytes= or bytes( or bytes < ]
i.e bytes=255 or bytes:255 or bytes<255> etc
regex_t compiled;
regmatch_t matches[MAXMATCH];
int count = 0;
regcomp(&compiled, bytes, REG_EXTENDED);
if(regexec(&compiled, bytes, 100, matches, 0)==0){
for (i=0; i<MAXMATCH; i++) {
if ((int)matches[i].rm_so < 0)
continue;
else {
//to do.
if bytes=<user input value> or bytes:<user input value> etc..
count++;
}
}
}
Как я могу указать выражение регулярного выражения для соответствия "bytes:" или "bytes =" или "bytes (" или "bytes <" и проверить, имеет ли оно «пользовательское значение ввода» после него. </p>