Skip to main content

Флаги, используемые в Re.match

Эти флаги определены в пространстве имен Re.Match. Они используются во всех алгоритмах. Когда регулярное выражение применяется к последовательности символов, применяются правила, описанные в таблице:

ФлагОписание
DefaultУказывает, что работа с регулярными выражениями происходит в соответствии с обычными правилами: ECMA-262, спецификацияязыка ECMAScript, глава 15, часть 10, Регулярные Выражения.
NotBOBУказывает, что выражения ”\A” и "`" не должны совпадать с подмножеством [first, first).
NotEOBУказывает, что выражения "`", "\ z" и "\Z" не должны совпадать с подмножеством [last, last).
NotBOLУказывает, что выражение "^" не должны совпадать с подмножеством [first, first).
NotEOLУказывает, что выражение "$" не должно совпадать с подмножеством [last, last).
NotBOWУказывает, что выражения "<" и "\b" не должны совпадать с подмножеством [first, first).
NotEOWУказывает, что выражения ">" и "\b" не должны совпадать с подмножеством [last, last).
AnyУказывает, что если существует более одного совпадения, то любое из совпадений является приемлемым результатом. Будет применено самое первое встретившееся совпадение, при этом, не всегда самое точное. Используйте этот флаг, если для вас важна скорость обработки, но не особо важно качество результата.
NotNullУказывает, что выражение не может быть использовано для пустой последовательности.
ContinuousУказывает, что выражение должно применяться к подмножеству, которое начинается с начала.
PartialУказывает, что если не найдено ни одного совпадения, то допустимо вернуть совпадение [from, last), при этом from! = last, если может существовать более длинная последовательность символов [from, to), из которых [from, last) - это префикс, который приведет к полному совпадению. Этот флаг используется при сопоставлении неполных или очень длинных текстов; дополнительную информацию см. документацию по частичным сравнениям.
ExtraДает указание механизму поиска сохранять всю доступную информацию о наличии совпадений; если совпадение повторяется снова, то информация о каждом из них будет доступна через методы match_results::captures() или sub_match_captures().
SingleLineЭквивалентно обратному модификатору "m/" языка Perl; предотвращает поиск ^ после встроенного символа новой строки (для того, чтобы он совпадал только в начале исходного текста) и $ от поиска перед встроенным символом новой строки (чтобы он совпадал только в конце исходного текста).
PrevAvailУказывает, что```--firstявляется допустимой позицией итератора, когда этот флаг установлен, тогда флагиmatch_not_bol и match_not_bow` игнорируются алгоритмами регулярных выражений (RE.7) и итераторов (RE.8).
DotNewLineУказывает, что выражение . не распознается как символ новой строки. Это инверсия модификатора "s/" языка Perl.
NotDotNullУказывает, что выражение . не распознается как символ null ('\0').
PosixУказывает, что выражение должно быть обработано в соответствии с правилом POSIX "leftmost-longest", независимо от того, какое выражение было скомпилировано. Эти правила плохо работают со многими специфичными для Perl моментами, например, такими как ленивые ("non-greedy") повторы.
NoSubsЗаставляет выражение вести себя так, как будто оно не имеет найденных подмножеств, независимо от того, сколько их присутствует на самом деле. Класс Matches будет содержать только информацию об общем совпадении, а не о совпадении в подмножествах.