Как найти записи адресов, не содержащие цифры, за которой следует пробел? (например, 15SMith St., в отличие от 15 Smith St)Postgres regex string matching
WHERE a.address not like '.[0-9] .'
явно не работает для меня.
Как найти записи адресов, не содержащие цифры, за которой следует пробел? (например, 15SMith St., в отличие от 15 Smith St)Postgres regex string matching
WHERE a.address not like '.[0-9] .'
явно не работает для меня.
Вы можете использовать SIMILAR TO
с NOT
и шаблон, который является «любопытным крестом между обозначениями LIKE и общей регулярной обозначение». Он поддерживает [0-9]
:
Выражение скобки
[...]
определяет класс символов, так же, как и в POSIX регулярных выражений.
Таким образом, вы можете использовать
WHERE a.address NOT SIMILAR TO '%[0-9] %'
Здесь %
матчи любое количество любых символов, [0-9]
соответствует ни одной цифры, пробел соответствует пробелу, а затем %
снова совпадает с любым количеством любых символов. Эти %
необходимы, потому что SIMILAR TO
требует полного совпадения строк, как и LIKE
.
Как насчет 'WHERE a.address НЕ ПОДХОДИТ К '% [0-9]%''? –
Отлично! Спасибо! –