Sql Oracle中所有重音字符的regexp
我试图找到带有重音字符的数据。我试过这个:Sql Oracle中所有重音字符的regexp,sql,regex,oracle,character-encoding,Sql,Regex,Oracle,Character Encoding,我试图找到带有重音字符的数据。我试过这个: select * from xml_tmp where regexp_like (XMLTYpe.getClobVal(xml_tmp.xml_data), unistr('\0090')) 它是有效的。它查找XML数据字段包含的所有记录。问题是它只匹配带有重音的大写字母E。我尝试编写一个更通用的查询,使用等价类查找所有带有重音元音的数据(a、e、I、o、u、大写和小写,以及任何重音)。我希望正则表达式只匹配重音元音,但我不确定如何获得它,因为等价类
select *
from xml_tmp
where regexp_like (XMLTYpe.getClobVal(xml_tmp.xml_data), unistr('\0090'))
它是有效的。它查找XML数据字段包含的所有记录。问题是它只匹配带有重音的大写字母E。我尝试编写一个更通用的查询,使用等价类查找所有带有重音元音的数据(a、e、I、o、u、大写和小写,以及任何重音)。我希望正则表达式只匹配重音元音,但我不确定如何获得它,因为等价类如[[[=e=]]
匹配所有的e(带或不带重音)
此外,这实际上不起作用:
select *
from xml_tmp
where regexp_like (XMLTYpe.getClobVal(xml_data),'É');
(使用Oracle 10g)怎么样
SELECT *
FROM xml_tmp
WHERE REGEXP_LIKE
( REGEXP_REPLACE
( XMLTYpe.getClobVal(xml_tmp.xml_data),
'[aeiouAEIOU]',
'-'
)
'[[=a=][=e=][=i=][=o=][=u=]]'
)
;
??这将在执行类似于的REGEXP\u之前消除所有未发音元音
(我知道这很难看,但应该有用。)怎么样
SELECT *
FROM xml_tmp
WHERE REGEXP_LIKE
( REGEXP_REPLACE
( XMLTYpe.getClobVal(xml_tmp.xml_data),
'[aeiouAEIOU]',
'-'
)
'[[=a=][=e=][=i=][=o=][=u=]]'
)
;
??这将在执行类似于
的REGEXP\u之前消除所有未发音元音
(我知道这很难看。但它应该会起作用。)经过更多的实验,我发现这似乎可以:
select *
from xml_tmp
where regexp_like(XMLTYpe.getClobVal(xml_data),'[^[:graph:][:space:]]')
我原以为[:graph://code>会包括所有大小写字符,有重音或没有重音,但它似乎只匹配没有重音的字符
进一步的实验表明,这可能并不适用于所有情况。尝试以下查询:
select *
from dual
where regexp_like (unistr('\0090'),'[^[:graph:][:space:]]');
笨蛋
-------
(比赛失败)
当我尝试在复制和粘贴时使用重音符号E运行此查询时,匹配失败!我猜我复制和粘贴的东西实际上是不同的。呃,我想我现在讨厌改变字符编码。经过更多的实验,我发现这似乎是可行的:
select *
from xml_tmp
where regexp_like(XMLTYpe.getClobVal(xml_data),'[^[:graph:][:space:]]')
我原以为[:graph://code>会包括所有大小写字符,有重音或没有重音,但它似乎只匹配没有重音的字符
进一步的实验表明,这可能并不适用于所有情况。尝试以下查询:
select *
from dual
where regexp_like (unistr('\0090'),'[^[:graph:][:space:]]');
笨蛋
-------
(比赛失败)
当我尝试在复制和粘贴时使用重音符号E运行此查询时,匹配失败!我猜我复制和粘贴的东西实际上是不同的。呃,我想我现在讨厌改变字符编码。我相信这应该行得通(好吧,它缺少一个逗号,但我修复了它),尽管它已经运行了好几分钟,当我试图杀死它时PL/SQL开发者挂起了。。。有些XML对象相当大…:/我相信这应该是可行的(好吧,它缺少一个逗号,但我修复了它),尽管它已经运行了好几分钟,当我试图杀死它的时候PL/SQL开发者挂起了。。。有些XML对象相当大…:/这很奇怪;[:graph:://code>及其类似内容的全部原因是包含非ASCII字符。很高兴知道这一点@鲁克:我以前从未使用过[:graph:
,所以我不确定这是它应该如何工作的,还是一些奇怪的环境设置导致它这样做……同样奇怪的是,我尝试过类似regexp(xml_数据,[\x80-\xFF])
,但它没有返回任何结果。我认为这肯定会奏效。(我从这里得到了[\x80-\xFF]
的想法:)这很奇怪;[:graph:://code>及其类似内容的全部原因是包含非ASCII字符。很高兴知道这一点@鲁克:我以前从未使用过[:graph:
,所以我不确定这是它应该如何工作的,还是一些奇怪的环境设置导致它这样做……同样奇怪的是,我尝试过类似regexp(xml_数据,[\x80-\xFF])
,但它没有返回任何结果。我认为这肯定会奏效。(我从这里得到了[\x80-\xFF]
的想法:)