2 回答
TA贡献1846条经验 获得超7个赞
FUNCTION REGEXP_SUBSTR_ALL(V_SRC VARCHAR, V_PATTERN VARCHAR2) RETURN VARCHAR2 IS
N_COUNT NUMBER;
I NUMBER;
V_RESULT VARCHAR2(4000);
BEGIN
N_COUNT := REGEXP_COUNT(V_SRC, V_PATTERN);
FOR I IN 1.. N_COUNT LOOP
V_RESULT := V_RESULT || REGEXP_SUBSTR(V_SRC, V_PATTERN, 1, I);
END LOOP;
RETURN V_RESULT;
END;
select REGEXP_SUBSTR_ALL('aBcX234EfX789uyTr', '\d+') from dual;
返回: 234789
函数定义如下: 在oracle 11g中可用
FUNCTION REGEXP_SUBSTR_ALL(V_SRC VARCHAR, V_PATTERN VARCHAR2) RETURN VARCHAR2 IS
N_COUNT NUMBER;
I NUMBER;
V_RESULT VARCHAR2(4000);
BEGIN
N_COUNT := REGEXP_COUNT(V_SRC, V_PATTERN);
FOR I IN 1.. N_COUNT LOOP
V_RESULT := V_RESULT || REGEXP_SUBSTR(V_SRC, V_PATTERN, 1, I);
END LOOP;
RETURN V_RESULT;
END;
TA贡献1777条经验 获得超3个赞
select REGEXP_REPLACE('abc123dsdfo456dfaj78dsl','[^0-9]','') from dual
如果达到
'X234,X789'
的效果,请查阅相关正则资料
- 2 回答
- 0 关注
- 601 浏览
添加回答
举报