oracle regexp_replace - 删除特定单词之间的空格

时间:2018-01-11 16:03:48

标签: regex oracle replace

在regexp_replace中使用Oracle需要一些帮助。 我有一些名称,其中的中间名首字母用空格分隔。我只能删除那个空格。

John E. W. Doe - >约翰E.W. Doe Jane W. B. Dane,Jr。 - >简W.B. Dane,Jr。

1 个答案:

答案 0 :(得分:0)

可以尝试使用输入(.+\w+\.) (\w+\..+)输出\1\2

REGEXP_REPLACE(<column>,
    '(.+\w+\.) (\w+\..+)',
    '\1\2')

其中:

  • (.+\w+\.)是第一个捕获组,.+\w+匹配每个字符.
  • 前面的第一个\w
  • (\w+\..+)匹配间隔,然后打开另一个捕获组以搜索任何单词\w+,后跟.,从这里.+ <允许任何字符序列/ LI>

(.+\w+\.) ?(\w+\.(.+)?)可能会更强大。这将允许找到像John E. W.这样的名字。有关详细信息,请参阅this example