SELECT regexp_replace('FRAME WINDOW MASTER. 160.055-44.9 ADULT Z68.41', '[^A-Z0-9%+/.+ '']', ' ')
FROM DUAL;
我得到的结果是
FRAME WINDOW MASTER. 160.055 44.9 ADULT
但我希望结果是
FRAME WINDOW MASTER 160.055 44.9 ADULT
(大师无句)
SELECT regexp_replace('FRAME WINDOW MASTER. 160.055-44.9 ADULT Z68.41', '[^A-Z0-9%+/.+ '']', ' ')
FROM DUAL;
我得到的结果是
FRAME WINDOW MASTER. 160.055 44.9 ADULT
但我希望结果是
FRAME WINDOW MASTER 160.055 44.9 ADULT
(大师无句)
这会奏效吗?
"[^A-Z0-9%+/.+ '']|\.\s"
我不确定您到底想要什么,但它提供了您想要的输出。
编辑这是修复:
[^A-Z0-9%+/.+ '']|\.(\s|$)
您可以在一个字符之后匹配.
并替换这样的组。
正则表达式: (\D)\.
并替换为\1[space]
您可以匹配.
两个字符并替换这样的组。
正则表达式: (\D)\.(\D)
并替换为\1[space]\2
你也可以使用look around
这样的断言。对它在 Oracle 中的支持持怀疑态度。
正则表达式: (?<=\D)\.(?=\D)
并替换为[space]