Поиск по регулярным выражениям POSIX
Обычные функции регулярных выражений выполняют обратную проверку при необходимости для обработки конструкций «\|» и повторения, но продолжают это только до тех пор, пока не найдут какое-либо соответствие. Затем они завершаются успешно и сообщают о первом найденном соответствии.
В этом разделе описаны альтернативные функции поиска, которые выполняют полную обратную проверку, указанную стандартом POSIX для сопоставления регулярных выражений. Они продолжают обратную проверку до тех пор, пока не испробуют все возможности и не найдут все соответствия, поэтому они могут сообщить о самом длинном соответствии, как требуется в POSIX. Это намного медленнее, поэтому используйте эти функции только тогда, когда вам действительно нужно самое длинное соответствие.
Функции поиска и сопоставления POSIX не поддерживают операторы повторения с ограниченным соответствием (см. нежадные). Это связано с тем, что обратная проверка POSIX конфликтует с семантикой нежадных повторений.
- Команда: posix-search-forward regexp &optional limit noerror count
Это похоже на
re-search-forwardза исключением того, что она выполняет полную обратную проверку, указанную стандартом POSIX для сопоставления регулярных выражений.
- Команда: posix-search-backward regexp &optional limit noerror count
Это похоже на
re-search-backwardза исключением того, что она выполняет полную обратную проверку, указанную стандартом POSIX для сопоставления регулярных выражений.
- Функция: posix-looking-at regexp
Это похоже на
looking-atза исключением того, что она выполняет полную обратную проверку, указанную стандартом POSIX для сопоставления регулярных выражений.
- Функция: posix-string-match regexp string &optional start
Это похоже на
string-matchза исключением того, что она выполняет полную обратную проверку, указанную стандартом POSIX для сопоставления регулярных выражений.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/POSIX-Regexps.html