Регулярное выражение в Postgresql: отделяйте слова от чисел ТОЛЬКО когда их нет в списке - PullRequest
0 голосов
/ 21 января 2020

У меня есть список, содержащий некоторые замены, которые мне нужно сохранить. Например, список замещения: ['1st', '2nd','thth ',' 100th ',' 1st national ',' xlr8 ',' 5pin ',' h20 '].

Это замещение list - список исключений, чтобы прекратить отделять буквы от цифр:

import re
exceptions = ['1st','2nd','10th','100th','1st nation','xlr8','5pin','h20']
exception_rx = '|'.join(map(re.escape, exceptions))
generic_rx = r'(?<=\d)(?=[^\d\s])|(?<=[^\d\s])(?=\d)'
rx = re.compile(rf'({exception_rx})|{generic_rx}', re.I)

s='h20 school camp'
print(rx.sub(lambda x: x.group(1) or " ", s))

Результат, как и ожидалось, h20 school camp. Если вы тестируете с h21 school camp, тогда вы получаете h 21 school camp.

Это работает, как и ожидалось, отделяя буквы от цифр в Python.

Есть ли способ применить тот же лог c в Postgresql регулярном выражении? Этот список замещения генерируется из таблицы.

Спасибо за ваше руководство:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...