在10g之前,要计算如下字符串:
SCKF100,CDKF200,MSKF300,ZYKF400,GYKF500
中‘KF’子字符串出现的次数,很困难。结合translate函数可以完成,但是很麻烦:
select
length(translate(str1, 'KF' || str1, 'KF')) / length('KF')
from (select 'SCKF100,CDKF200,MSKF300,ZYKF400,GYKF500' as str1 from dual)
结果为5,表示'KF'出现5次。
但在10g中,可以利用regexp_count函数轻松完成:
select
regexp_count(str1,'KF')
from (select 'SCKF100,CDKF200,MSKF300,ZYKF400,GYKF500' as str1 from dual)
挺方便的吧?!
在10g之前,要计算如下字符串:SCKF100,CDKF200,MSKF300,ZYKF400,GYKF500中‘KF’子字符串出现的次数,很困难。结合translate函数可以完成,但是很麻烦:select length(translate(str1, 'KF' || str1, 'KF')) / length('KF') from (select 'SCKF100,CDKF2
function
REGEX
P_SUBSTR(string, pattern, position, occurrence, modifier)
string :需要进行正则处理的
字符串
pattern :进行匹配的正则表达式
position :起始位置,从第几个字符开始正则表达式匹配(默认为1)
occurrence :标识第几个匹配组,默认为1
modifier :模式(‘i’不区分大小写进行检索;’c’区分大小写进行检索。默认为’c’)
SELECT
REGEX
P_SUBSTR('123,,,ABC,!@#,,,', '[^,]
在Oracle的11g版本中引入了
REGEX
P_
COUNT
函数,使用这个函数可以统计
字符串
出现的次数,小观一下。1.
REGEX
P_
COUNT
函数语法参考
REGEX
P_
COUNT
(source_char, pattern [, position [, match_param]])2.先看一下使用最少参数的效果(仅使用前两个参数)
1)得到
字符串
中小写字母“a”的出现次数
sys@ora11g> select
regex
p_
count
('The pro-niece was born today, s
select
regex
p_
count
('c means Case insensitive matching','A','1','c') "
count
(A)" from dual
select
regex
p_
count
('c means Case insensitive matching','A','1','i') "
count
(A)" ...
在Oracle 11g 中,可以使用
REGEX
P_
COUNT
函数。
REGEX
P_
COUNT
返回在源串中出现的模式的次数,作为对
REGEX
P_INSTR 函数的补充。需要注意的是,尽管
COUNT
是一个集合函数,它操作的是行组,但
REGEX
P_
COUNT
是一个单行函数,它分别计算每一行。
REGEX
P_
COUNT
的语法如下所示:
REGEX
P_
COUNT
( source_char
前段时间迁移oracle 11g数据至pg 9.6,应用用到了oracle函数
regex
p_
count
,在此分享在pg中实现此函数的方法
1.
REGEX
P_
COUNT
函数语法参考
REGEX
P_
COUNT
(source_char, pattern [, position [, match_param]])
2.使用示例:
1)得到
字符串
中小写字母“a”的出现次数 (大小写敏感)
sys@o...
https://blog.csdn.net/JohnnyChu/article/details/111184962
https://blog.csdn.net/gxftry1st/article/details/22489275?
https://blog.csdn.net/haiross/article/details/42103289?