我想用'&'替换所有'空格',排除'| 'in regexp_replaceOracle Regexp_replace
例如:'create |删除帐户' - > expect输出为'create |删除&帐户'。
余米与SQL
select regexp_replace('create | delete account','\s [^\s\|\s]',' & ') from dual
努力,但我为在这里做了什么。任何人都可以请求帮助。
我想用'&'替换所有'空格',排除'| 'in regexp_replaceOracle Regexp_replace
例如:'create |删除帐户' - > expect输出为'create |删除&帐户'。
余米与SQL
select regexp_replace('create | delete account','\s [^\s\|\s]',' & ') from dual
努力,但我为在这里做了什么。任何人都可以请求帮助。
我想这是你想要的东西:
select regexp_replace('create | delete account', '([^\|]) ([^\|])', '\1 & \2')
from dual
这里的逻辑是在两个非管道字符之间发生空间时进行替换。我使用圆括号捕获这些字符,然后通过\1
和\2
在替换中使用它们。
对于超过3个空格的情况,使用'([^ \ |])\ s +([^ \ |])''。 +1虽然。 – GurV
@GurwinderSingh感谢您的评论和赞扬:-) –
@ Tim Biegeleisen - 谢谢..它解决了..我喜欢你看到的要求(即)'替换两个非管道字符之间的空间' –
如果你需要用字符串' & '
更换每一个空间,在你的出发字符串没有'&'
,你可以避免正则表达式:
select replace (replace('create | delete account', ' ', ' & '), ' & | & ', ' | ') from dual
如果您有一系列空格,您是否需要用'&'替换每个空格?另外,您的起始字符串中是否有'&'字符? – Aleksej