Regex Oracle正则表达式-删除字符串中长度为1的字母标记之间的空格

Regex Oracle正则表达式-删除字符串中长度为1的字母标记之间的空格,regex,oracle,oracle11g,regexp-replace,Regex,Oracle,Oracle11g,Regexp Replace,Oracle版本:11.2 我对正则表达式的使用还不熟悉,需要一些帮助来为下面解释的需求提供正确的REGEXP_替换 要求:删除字符串中长度为1的字母标记之间的空格 例1: "The I B M Corporation N Y US" …应转换为: "The IBM Corporation NY US" "The PN CD FUND of JPRM" 例2: "The P N CD FUND of J P R M" …应转换为: "The IBM Corporation NY US"

Oracle版本:11.2

我对正则表达式的使用还不熟悉,需要一些帮助来为下面解释的需求提供正确的REGEXP_替换

要求:删除字符串中长度为1的字母标记之间的空格

例1:

"The I B M Corporation N Y US" 
…应转换为:

"The IBM Corporation NY US"
"The PN CD FUND of JPRM"
例2:

"The P N CD FUND of J P R M"
…应转换为:

"The IBM Corporation NY US"
"The PN CD FUND of JPRM"

这似乎适用于您的示例:

SELECT regexp_replace('The I B M Corporation N Y US', '([[:alpha:]]{2} [[:alpha:]]{1,1}) | ([[:alpha:]]{1,1})( [[:alpha:]]{2})| ([[:alpha:]]{1,1}$)| ([[:alpha:]]{1,1}) ', '\1\2\3\4\5') as eg_1,
       regexp_replace('The P N CD FUND of J P R M', '([[:alpha:]]{2} [[:alpha:]]{1,1}) | ([[:alpha:]]{1,1})( [[:alpha:]]{2})| ([[:alpha:]]{1,1}$)| ([[:alpha:]]{1,1}) ', '\1\2\3\4\5') as eg_2
  FROM dual;
我使用此页面来帮助:


我希望它能帮到你

这似乎适用于您的示例:

SELECT regexp_replace('The I B M Corporation N Y US', '([[:alpha:]]{2} [[:alpha:]]{1,1}) | ([[:alpha:]]{1,1})( [[:alpha:]]{2})| ([[:alpha:]]{1,1}$)| ([[:alpha:]]{1,1}) ', '\1\2\3\4\5') as eg_1,
       regexp_replace('The P N CD FUND of J P R M', '([[:alpha:]]{2} [[:alpha:]]{1,1}) | ([[:alpha:]]{1,1})( [[:alpha:]]{2})| ([[:alpha:]]{1,1}$)| ([[:alpha:]]{1,1}) ', '\1\2\3\4\5') as eg_2
  FROM dual;
我使用此页面来帮助:


我希望它能帮到你

遗憾的是,我不知道Oracle正则表达式的语法,但是如果您能够将正则表达式转换为另一个正则表达式,那么这个正则表达式可以与C#中的regex.Replace()方法函数一起使用


(?遗憾的是,我不知道Oracle正则表达式的语法,但是如果您能够将正则表达式转换为另一个正则表达式,那么如果将此正则表达式与C#中的regex.Replace()方法函数一起使用,则可以执行您想要的操作

(?