如果一个字符串是由一些以空格隔开(可能是连续空格)的单词组成的,如何计算出字符串中的单词数。
例如:
字符串: ‘good luck everyone!’
可以用如下语句得到单词数:
SELECT length('good luck everyone'||' ')-length(REPLACE('good luck everyone', ' ', '')) FROM DUAL;但是如果空格是连续的空格,兄弟就不会求了。麻烦各位了。
例如求如下字符串的单词数:'good luck everyone'。其中good和luck之间是两个空格,luck和everyone之间是三个空格。
如何求出单词数。
例如:
字符串: ‘good luck everyone!’
可以用如下语句得到单词数:
SELECT length('good luck everyone'||' ')-length(REPLACE('good luck everyone', ' ', '')) FROM DUAL;但是如果空格是连续的空格,兄弟就不会求了。麻烦各位了。
例如求如下字符串的单词数:'good luck everyone'。其中good和luck之间是两个空格,luck和everyone之间是三个空格。
如何求出单词数。
我的解决方法是:
SELECT length(regexp_REPLACE('good luck everyone', '[ ]+', ' ')||' ')
- length(regexp_REPLACE('good luck everyone', '[ ]+', ''))
FROM DUAL;结果为:
WORDS_CNT
----------
3
不知道有没有更简洁的方法,还请不吝赐教!
length(regexp_replace(' good luck everyone! # ','[[:alpha:]]+')) from dual
这样比较准确吧
你那个要考虑空格在前在后在中间问题,还有符号问题
replace直接对应字符可以解决这个问题