Читать книгу 📗 "Linux программирование в примерах - Роббинс Арнольд"
• Когда в
cflagsREG_NEWLINE• Символ конца строки не соответствует '
.• Оператор
^REG_BOL• Оператор
$REG_EOLКогда вы осуществляете построчный ввод/вывод, как в случае с
grepREG_NEWLINEcflags^$REG_NEWLINEСтруктура
regex_ttypedef struct { /* ...здесь внутренний материал... */ size_t re_nsub; /* ...здесь внутренний материал... */} regex_t;В структуре
regmatch_ttypedef struct { /* ...здесь возможный внутренний материал... */ regoff_t rm_so; /* Смещение начала вложенной строки в байтах */ regoff_t rm_eo; /* Смещение первого байта после вложенной строки */ /* ...здесь возможный внутренний материал... */} regmatch_t;Как поле
re_nsubregmatch_t[:пробел:]]+([[:цифра:]]+)[[:пробел:]]+([[:буква:]])+Каждое из двух вложенных выражений в скобках могут соответствовать одному или более символам. Более того, текст, соответствующий каждому вложенному выражению, может начинаться и заканчиваться в произвольных участках строки.
regcomp()re_nsubregexec()pmatchregmatch_tpmatch[0]pmatch[1]pmatch[preg->re_nsub]rm_sorm_eopmatchregexec()nmatch-1pmatchpreg->re_nsubНаконец, флаг
REG_NOSUBregcomp()regexec()Другими словами, если все, что вам нужно знать, это «соответствует ли?», включите
REG_NOSUBВ заключение, как
regcomp()regexec()Таблица 12.9. Коды ошибок
regcomp()regexec()| Константа | Значение |
|---|---|
REG_BADBR | Содержимое '{...} |
REG_BADPAT | Регулярное выражение недействительно |
REG_BADRPT | Символу ?+* |
REG_EBRACE | Фигурные скобки ('{...} |
REG_EBRACK | Квадратные скобки ('[...] |
REG_ECOLLATE | В шаблоне использован недействительный элемент сортировки |
REG_ECTYPE | В шаблоне использован недействительный класс символов |
REG_EESCAPE | В шаблоне есть завершающий символ |
REG_EPAREN | Группирующие скобки ('(...)(...) |
REG_ERANGE | Конечная точка в диапазоне не действительна |
REG_ESPACE | Функции не хватило памяти |
REG_ESUBREG | Цифра в '<i>цифра</i> |
REG_NOMATCH | Строка не соответствует шаблону |