Создание исключений нечеткого соответствия с новым модулем регулярных выражений Python
Я тестирую новый питонрегулярное выражение модуль, который допускает нечеткое сопоставление строк, и до сих пор был впечатлен его возможностями. Однако у меня возникли проблемы с определенными исключениями при нечетком сопоставлении. Ниже приводится пример. я хочуST LOUIS
и все вариацииST LOUIS
на расстоянии редактирования от 1 до соответствияref
, Однако я хочу сделать одно исключение из этого правила: редактирование не может состоять из вставки слева от крайнего левого символа, содержащего буквыN
, S
, E
, или жеW
, В следующем примере я хочу, чтобы входы 1 - 3 совпадали с ref, а вход 4 - сбой. Однако, используя следующиеref
заставляет это соответствовать всем четырем входам. Кто-нибудь, кто знаком с новым модулем регулярных выражений, знает о возможном обходном пути?
input1 = 'ST LOUIS'
input2 = 'AST LOUIS'
input3 = 'ST LOUS'
input4 = 'NST LOUIS'
ref = '([^NSEW]|(?<=^))(ST LOUIS){e<=1}'
match = regex.fullmatch(ref,input1)
match
<_regex.Match object at 0x1006c6030>
match = regex.fullmatch(ref,input2)
match
<_regex.Match object at 0x1006c6120>
match = regex.fullmatch(ref,input3)
match
<_regex.Match object at 0x1006c6030>
match = regex.fullmatch(ref,input4)
match
<_regex.Match object at 0x1006c6120>