У меня есть база данных адресов, где аббревиатуры разделены пробелом, я хочу удалить это пространство, поэтому я обратился к надежным регулярным выражениям. Тем не менее, я изо всех сил пытаюсь выполнить вторичную функцию по результату regexp '\ &' - Я проверил форумы и документы и просто не могу заставить это работать. Пример данных у меня выглядит следующим образом:Функции на regexp_replace result в Postgres
- 'Сварка AVC' должно быть '' AVC сварки
- 'HSBC' должен быть 'HSBC'
- и т.д ..
У меня есть следующее регулярное выражение:
trim(regexp_replace(organisation || ' ', '(([A-Z]\s){1}){2,}', replace('\&',' ',''), 'g'))
replace('\&',' ','')
не оказывает влияния на всех, я просто получить ту же строку обратно. Я пробовал другие функции, например. lower('\&')
, и ни одна из них не работает должным образом. Конкатенация с || делает работа однако. Я попробовал лить «\ &» в текст, попробовал replace('' || '\&' || '',' ','')
- все равно, без радости.
Любые советы были бы очень признательны, я уверен, что решение является чем-то очень простым, но я просто не вижу, куда идти дальше!
Hi Vivek - спасибо за ваш ответ, как указано выше. Я ожидаю, что смогу преобразовать «AVC Welding» в «AVC Welding», «HSBC» в HSBC и т. Д. Ему также необходимо работать для нескольких сокращений, поэтому «PD James & HS Wilson 'должен быть «PD James & HS Wilson». Любые советы, которые вы можете предоставить, будут высоко оценены. –
Итак, чтобы ограничить 'select trim (regexp_replace ('AVC Welding', '(([AZ] \ s) {1}) {2,}', заменить ('\ &', '', ''), 'g ')); 'возвращает' AVC Welding', тогда как я ожидаю 'AVC Welding' –
Что именно вы хотите делать с заменой (' \ & ',' ',' ')'? Это не так. – Patrick