我到這裏來檢查這個話題後: Regular Expression that includes plus sign and decimaloracle的電話號碼格式章EXP
我的主要問題是下面的,我錯了遷移,需要固定數據。 電話號碼,我們有一些字母和特殊字符,需要刪除。
想象例如這將是數據:
s#sdads+#09232342a
我想只有+和數字 的+必須是可選的。
http://www.techonthenet.com/oracle/functions/regexp_substr.php https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm
如果我讀了甲骨文,這應該是很容易的文件,但我不能讓它工作,我必須缺少基本的東西。 有什麼想法?
下面有什麼什麼,我已經嘗試了一些例子:
select regexp_substr('s#sdads+#09232342a','\+*[0-9]+') from dual;
回報
09232342
我期待它要考慮+ 我也試圖把在+的開始測試字符串沒有區別。 同爲改變正則表達式來
[\+]*[0-9]+ or [+]*[0-9]+ or (\+)*(\d)+
了。在結果沒有差異。
這讓我困惑的是,如果我改變測試字符串和正則表達式這個收益+,只加
select regexp_substr('+s#sdads+#09232342a','?[\+]*') from dual;
,但如果我動+出開始消失
另外,如果我把這些數字在那裏,只有數字被認爲是:
select regexp_substr('+s#sdads+#09232342a','?[\+]*(\d)+') from dual;
這也沒有工作:
select regexp_substr('+s#sdads+#09232342a','?[\+]{0,1}(\d)+') from dual;
它已經修復,謝謝大家 –