oracle正則表達式regexp_substr、regexp_like(11g好像不支持)、regexp_replace是無法像其他正則表達式一樣用[\u4e00-\u9fa5]來匹配中文的。
所以,我們需要用另一種方式來實現oracle正則表達式匹配中文。
我們需要用到oracle的內置函數UNISTR(str):
ASCIISTR語法:asciistr(str) 功能:返回字符串的規則表現形式,英文和數字變為規則的,中文則前面有‟\‟符號,返回unicode編碼形式。
UNISTR(str)函數是相反的過程,將unicode編碼變為字符。
用法:
select regexp_instr('abc中文測試','[' || unistr('\4e00') || '-' || unistr('\9fa5') || ']') from dual;