栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从varchar,Oracle PL / SQL中选择元音

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从varchar,Oracle PL / SQL中选择元音

如果使用的是Oracle
11g,则可以使用REXEXP_COUNT函数确定与模式匹配的内容。

SQL> select regexp_count('andrew', '[aeiou]', 1, 'i') as vowels  2    from dual;    VOWELS----------         2

第一个参数是您要匹配的字符串

'andrew'

第二个参数是匹配模式,在这种情况下为

[aeiou]
。在
[]
表示一个字符列表; 解析器以任何顺序匹配此列表中的所有字符。

第三个参数,

1
是开始位置,指示Oracle应该在其中开始搜索匹配项的字符串的位置索引。它仅包含在内,因此我可以使用第四个参数。

第四个参数是match参数,

'i'
指示我要执行不区分大小写的匹配。这就是为什么字符列表 存在的原因
[aeiouAEIOU]

如果您使用的是10克,则REGEXP_COUNT不存在。在这种情况下,你可以使用更确切版本Annjawan的解决方案与REGEXP_REPLACe。

SQL> select length(regexp_replace('andrew','[^aeiou]', '', 1, 0, 'i')) as vowels  2    from dual;    VOWELS----------         2

克拉(

^
)表示不是,即用空字符串替换字符串
'andrew'
列表中不在字符串中的每个字符
[aeiou]
。下一个参数再次是起始位置。第五个参数
0
表示您要替换
每次 匹配的模式,并且我再次使用match参数
'i'
表示不区分大小写的匹配。

Gaurav的答案不正确。这是因为在字符列表中,他包括了逗号。请记住,如果可用,字符列表中的
所有内容都 将匹配。因此,如果我在您的字符串中引入逗号,则您的字符串中将有3个“元音”:

SQL> select regexp_count('an,drew','[a,e,i,o,u,A,E,I,O,U]' ) as vowels  2    from dual;    VOWELS----------         3

正则表达式不是简单的野兽,我会强烈建议你阅读的文档尝试他们的时候。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/634527.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号