oracle查询删除单词后的多余空格,字符串中点后没有空格
oracle query to remove extra spaces after word and no spaces after a dot in a string
我想要一个将处理两件事的 oracle 查询:
1) 任何单词后只有一个 space。删除字符串中任何单词后的任何额外 spaces。
2) 不想在字符串中的任何 "dot or comma or colon or semi-colon" 之后看到任何 space(如果有的话)。 ".
或 ,
或 ;
或 :"
后零 space 秒
示例:
'My name is Pramod. I am writing a query, Today is AUG 16TH: 2019; X11.'
请求的输出:
'My name is Pramod.I am writing a query,Today is AUG 16TH:2019;X11.'
注:My
后有两个space,I
、;
、:
和[后有两个space =13=].
像这样的东西应该可以工作:
...
regexp_replace(input_string, '( |\.|,|:|;) +', '')
...
第二个参数(正则表达式)括号中的内容是一个 交替 - 它恰好匹配五个字符之一 space、句点、逗号、冒号或分号。 (当然,必须转义句点。)您可以在其中包含任何标点符号。括号中的东西也是一个 subexpression 可以被函数第三个参数中的 backreference 引用。
如果您不熟悉这些概念中的任何一个,请查找并阅读 Oracle regexp_replace()
的文档。
使用regexp_replace:
FSITJA@db01> select regexp_replace('My name is Pramod. I am writing . a query, Today is AUG 16TH: 2019; X11. abc', '([,;:. ]){1} +', '')
2 from dual;
REGEXP_REPLACE('MYNAMEISPRAMOD.IAMWRITING.AQUERY,TODAYISAUG16TH:2019;X
----------------------------------------------------------------------
My name is Pramod.I am writing .a query,Today is AUG 16TH:2019;X11.abc
我想要一个将处理两件事的 oracle 查询:
1) 任何单词后只有一个 space。删除字符串中任何单词后的任何额外 spaces。
2) 不想在字符串中的任何 "dot or comma or colon or semi-colon" 之后看到任何 space(如果有的话)。 ".
或 ,
或 ;
或 :"
示例:
'My name is Pramod. I am writing a query, Today is AUG 16TH: 2019; X11.'
请求的输出:
'My name is Pramod.I am writing a query,Today is AUG 16TH:2019;X11.'
注:My
后有两个space,I
、;
、:
和[后有两个space =13=].
像这样的东西应该可以工作:
...
regexp_replace(input_string, '( |\.|,|:|;) +', '')
...
第二个参数(正则表达式)括号中的内容是一个 交替 - 它恰好匹配五个字符之一 space、句点、逗号、冒号或分号。 (当然,必须转义句点。)您可以在其中包含任何标点符号。括号中的东西也是一个 subexpression 可以被函数第三个参数中的 backreference 引用。
如果您不熟悉这些概念中的任何一个,请查找并阅读 Oracle regexp_replace()
的文档。
使用regexp_replace:
FSITJA@db01> select regexp_replace('My name is Pramod. I am writing . a query, Today is AUG 16TH: 2019; X11. abc', '([,;:. ]){1} +', '')
2 from dual;
REGEXP_REPLACE('MYNAMEISPRAMOD.IAMWRITING.AQUERY,TODAYISAUG16TH:2019;X
----------------------------------------------------------------------
My name is Pramod.I am writing .a query,Today is AUG 16TH:2019;X11.abc