0
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 (大师无句)

4

2 回答 2

0

这会奏效吗?

"[^A-Z0-9%+/.+ '']|\.\s"

我不确定您到底想要什么,但它提供了您想要的输出。

编辑这是修复:

[^A-Z0-9%+/.+ '']|\.(\s|$)
于 2016-03-24T18:18:47.523 回答
0

您可以在一个字符之后匹配.并替换这样的组。

正则表达式: (\D)\.并替换为\1[space]

正则表达式 101 演示


您可以匹配.两个字符并替换这样的组。

正则表达式: (\D)\.(\D)并替换为\1[space]\2

正则表达式 101 演示


你也可以使用look around这样的断言。对它在 Oracle 中的支持持怀疑态度。

正则表达式: (?<=\D)\.(?=\D)并替换为[space]

正则表达式 101 演示

于 2016-03-24T18:20:56.000 回答