2
我有一個字符串,這是以前用initcap()處理,我想它的大寫部分。psql大寫反向引用字符串regexp_replace
具體說明 - 我想輸入大寫的基本羅馬數字。
爲了更具體些,我想更換
賈納㈢Sobieskiego
到
賈納III Sobieskiego
我想我可以使用某種上部子字符串子查詢梳Ø實現它,但我想使它在一個REGEXP_REPLACE工作,像這樣:
SELECT
ulica
--, regexp_matches(ulica , '((^|\s)([XxIiVv]+)(\s|$))', 'g')
, regexp_replace(ulica, '((^|\s)([XxIiVv]+)(\s|$))', '\2'||upper('q\3q')||'\4' , 'g')
FROM (
SELECT unnest(ARRAY['Jana Iii Sobieskiego', 'Xx Lecia', 'Xxx Lecia Panowania Zygmunta Iii Wazy'])::text AS ulica
) AS src
會發生什麼事,是對替換字符串的「靜態」部分上作品(Q。問),但不是反向引用。
我得到
賈納QIiiQ Sobieskiego
任何人有一個想法如何做到這一點?
的PostgreSQL 9.1
你是如何解決這個問題的?在這一刻我會去做一個解決方法。對不起@Stephan沒有確認你的答案,我只是更容易接受我的系統 – 2016-02-22 21:39:51
我沒有。似乎它不能完成。 – murison 2016-02-23 10:04:11
感謝您的評論!這對後天有好處。我想知道Postgres的最新版本是否發生了變化。乾杯 – 2016-02-23 16:48:23