Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL regexp-替换两个数字之间的点_Oracle_Regexp Replace - Fatal编程技术网

Oracle SQL regexp-替换两个数字之间的点

Oracle SQL regexp-替换两个数字之间的点,oracle,regexp-replace,Oracle,Regexp Replace,我需要改变这个 J S49-1:7.5-190 d. 对此, J S49-1:7,5-190 d. 将所有点替换为逗号,但仅在数字之间。使用REGEXP\u SUBSTR的一种方法: select REGEXP_SUBSTR('J S49-1:7.5-190 d','[^.]+',1,1)||','||REGEXP_SUBSTR('J S49-1:7.5-190 d','[^.]+',1,2) from dual; 这是regexp\u回复 select REGEXP_REPLACE('J

我需要改变这个

J S49-1:7.5-190 d.
对此,

J S49-1:7,5-190 d.

将所有点替换为逗号,但仅在数字之间。

使用REGEXP\u SUBSTR的一种方法:

select REGEXP_SUBSTR('J S49-1:7.5-190 d','[^.]+',1,1)||','||REGEXP_SUBSTR('J S49-1:7.5-190 d','[^.]+',1,2) from dual;
这是regexp\u回复

select REGEXP_REPLACE('J S49-1:7.5-190 d','[.*]',',') from dual

使用
REGEXP_REPLACE
中的捕获组

将返回

J S49-1:7,5-190 d.
J S49-1:7,557,8-190 d.
但是,如果数字之间有多次出现句点,这将不起作用

如果数字之间出现多个周期

我能够用捕获组触发多重替换

将返回

J S49-1:7,5-190 d.
J S49-1:7,557,8-190 d.
最后两个参数为:<代码>开始位置和
n\u外观
,要替换所有出现的情况,
n\u外观
值必须为
0

但当两个捕获组共享一个数字时仍然存在一个问题,这是由于重叠(),需要提前解决,但不能在oracle中使用它,嗯

如果两个数字之间出现多个周期,并且两个周期之间共享同一个数字

一个解决方案是应用我共享过两次的第二个
REGEXP\u REPLACE
,这样任何重叠的情况都会在第二次运行中被覆盖

将是正确的结果

J S49-1:7,5,8,7-190 d.
有关
REGEXP\u REPLACE
的更多详细信息,请检查

J S49-1:7,5,8,7-190 d.