我正在嘗試查找具有重音字符的數據。我試過這個:對於Oracle中所有重音字符的正則表達式
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)
這是奇怪的; 「[:graph:]」的全部原因就是包含非ASCII字符。這很好理解! – ruakh
@ruakh:我以前從來沒有使用過'[:graph:]',所以我確定這是它應該如何工作,或者它只是一些奇怪的環境設置導致它的行爲。 – FrustratedWithFormsDesigner
奇怪的是我試過'regexp_like(xml_data,'[\ x80- \ xFF]')',它什麼也沒有返回。我認爲這一定會奏效。 – FrustratedWithFormsDesigner