在regexp_replace中使用Oracle需要一些帮助。 我有一些名称,其中的中间名首字母用空格分隔。我只能删除那个空格。
John E. W. Doe - >约翰E.W. Doe Jane W. B. Dane,Jr。 - >简W.B. Dane,Jr。
答案 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。