为什么REGEXP_LIKE函数将字母"e"视为大写而不是小写? [英] Why does the REGEXP_LIKE function treat the letter 'e' as upper case instead of lower case?

查看:103
本文介绍了为什么REGEXP_LIKE函数将字母"e"视为大写而不是小写?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的pl/sql脚本中,当通过[:upper:]字符类语法进行搜索时,Oracle将字母'e'视为大写字母.

In my pl/sql script Oracle treats the letter 'e' as upper case when searching by the [:upper:] Character Class Syntax.

REGEXP_LIKE('e', '[:upper:]')

REGEXP_LIKE('e', '[:lower:]')

相关的Oracle文档可以在这里找到:

Related Oracle docs can be found here:

Oracle-多语言正则表达式语法

Oracle-REGEXP_LIKE

推荐答案

当字符类用方括号[]包围时,它们似乎起作用:

The character classes seem to work when you surround them with brackets [] as in :

SQL> SELECT * FROM dual WHERE regexp_like('e', '[[:upper:]]');

DUMMY
-----

SQL> SELECT * FROM dual WHERE regexp_like('E', '[[:upper:]]');

DUMMY
-----
X

当您使用单括号时,Oracle将其视为字符列表,即由于u包含在字符串:upper:中,因此可以进行以下操作:

When you use single brackets Oracle treats them as a list of characters, i-e the following works because u is contained in the string :upper::

SQL> SELECT * FROM dual WHERE regexp_like('u', '[:upper:]');

DUMMY
-----
X

这篇关于为什么REGEXP_LIKE函数将字母"e"视为大写而不是小写?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆