regex_replace,仅替换整个单词
我的PostgreSQL表中有以下行:regex_replace,仅替换整个单词,regex,postgresql,Regex,Postgresql,我的PostgreSQL表中有以下行: kpi_old --------------------------------- Other operating exp (1200) Other operating exp (1400) Other operating exp (1600) Other operating expenses 0 (1200) Other operating expenses 0 (1400) Other operating expenses 0 (1600) 我想替换
kpi_old
---------------------------------
Other operating exp (1200)
Other operating exp (1400)
Other operating exp (1600)
Other operating expenses 0 (1200)
Other operating expenses 0 (1400)
Other operating expenses 0 (1600)
我想替换:
=>其他营业费用
其他营业费用和税费
=>其他运营费用0
其他运营费用和税费
SELECT
"kpi_old",
regexp_replace("kpi_old", '(Other operating exp)','Other operating expenses & taxes') as "kpi_new"
Other operating expenses & taxes (1200)
Other operating expenses & taxes (1400)
Other operating expenses & taxes (1600)
Other operating expenses & taxesenses 0 (1200)
Other operating expenses & taxesenses 0 (1400)
Other operating expenses & taxesenses 0 (1600)
问题是,它返回以下内容:
SELECT
"kpi_old",
regexp_replace("kpi_old", '(Other operating exp)','Other operating expenses & taxes') as "kpi_new"
Other operating expenses & taxes (1200)
Other operating expenses & taxes (1400)
Other operating expenses & taxes (1600)
Other operating expenses & taxesenses 0 (1200)
Other operating expenses & taxesenses 0 (1400)
Other operating expenses & taxesenses 0 (1600)
我可以使用哪个正则表达式替换字符串中的精确匹配?使用可选组(ENSE)?
使用涵盖以下两个方面的模式:
SELECT regexp_replace(
kpi_old,
'Other operating exp(enses 0)?',
'Other operating expenses & taxes'
)
FROM mytab;
regexp_replace
-----------------------------------------
Other operating expenses & taxes (1200)
Other operating expenses & taxes (1400)
Other operating expenses & taxes (1600)
Other operating expenses & taxes (1200)
Other operating expenses & taxes (1400)
Other operating expenses & taxes (1600)
(6 rows)