Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle中所有重音字符的regexp_Sql_Regex_Oracle_Character Encoding - Fatal编程技术网

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]
的想法:)