Это модуль, о котором я спрашиваю: https://pypi.org/project/regex/, это regex
.
у Мэтью Барнетта. На странице описания проекта разница в поведении между V0 и V1 указана как (обратите внимание, что выделено жирным шрифтом):
Старое и новое поведение
Для совместимости с модулем re
этот модуль имеет 2 поведения:
Поведение версии 0 (старое поведение, совместимое с модулем re):
Обратите внимание, что поведение модуля re может со временем меняться, и я постараюсь соответствовать этому поведению в версии 0.
- Обозначается флагом
VERSION0
или V0
или (?V0)
в шаблоне. - Нечувствительные к регистру совпадения при использовании Юникода простое сворачивание регистра по умолчанию.
Поведение версии 1 (новое поведение, возможно, отличающееся от модуля re):
- Обозначается
VERSION1
или V1
флаг, или (?V1)
в шаблоне. - регистрозависимые совпадения при использовании Unicode полное складывание по умолчанию по умолчанию.
Если версия не указана, модуль регулярных выражений по умолчанию будет regex.DEFAULT_VERSION
.
Я сам попробовал несколько примеров, но не понял, что он делает:
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import regex
>>> r = regex.compile("(?V0i)и")
>>> r
regex.Regex('(?V0i)и', flags=regex.I | regex.V0)
>>> r.search("И")
<regex.Match object; span=(0, 1), match='И'>
>>> regex.search("(?V0i)é", "É")
<regex.Match object; span=(0, 1), match='É'>
>>> regex.search("(?V0i)é", "E")
>>> regex.search("(?V1i)é", "E")
В чем разница между простым складыванием и полным складыванием?Или вы можете привести пример, где регулярное выражение (без учета регистра) соответствует чему-то в V1, но не в V0?