计算出字符串中的单词数

来源:互联网 发布:mac多桌面有什么用 编辑:程序博客网 时间:2024/05/17 02:52

如果一个字符串是由一些以空格隔开(可能是连续空格)或者其他非字母的字符的单词组成的,如何计算出字符串中的单词数。
例如:
字符串: 'good  luck  everyone'
可以用如下语句得到单词数:
SELECT length('good luck everyone'||' ')-length(REPLACE('good luck everyone', ' ', '')) FROM DUAL;

 

如果空格是连续的空格
例如:

字符串:'good  luck  everyone'。其中good和luck之间是两个空格,luck和everyone之间是三个空格。
提供三个方法():

1.

SELECT length(regexp_REPLACE('good  luck   everyone', '[ ]+', ' ')||' ')
 - length(regexp_REPLACE('good  luck   everyone', '[ ]+', '')) AS words_cnt
FROM DUAL;

2.

SELECT length(REGEXP_REPLACE('good  luck   everyone'||' ','( ){1,}',' '))
 - length(REPLACE('good luck everyone', ' ', '')) AS words_cnt
FROM DUAL;

3.

SELECT length(regexp_replace('  good  luck  everyone! #  ','[[:alpha:]]+','a'))
 - length(regexp_replace('  good  luck  everyone! #  ','[[:alpha:]]+')) AS words_cnt
FROM DUAL;

 

其中:

1和2的方法思路是一样的,但利用的策略稍微不一样;

3方法可以完成以非字母的字符隔开的单词的计数,例如3中的‘!#’。

原创粉丝点击