2014-03-19 22 views
1

我正在使用Sybase SQL(ASA)和currenty我正在處理正則表達式。Sybase SQL - 正則表達式轉義元字符

我的任務是檢查字符串是否僅包含數字,「+」,「 - 」或「/」 就像以下字符串:「+49176/3421094」

我的發言看起來就像這樣(只測試):

Select * from (select '+49176/3421094' Tele from dummy) a 
where Tele SIMILAR TO '[0-9/-\+]*' 

在它說,元字符必須以「\」進行轉義,但如果我執行該語句的SQL引發錯誤消息「未知的元字符」的文檔。

我的問題是:我該如何逃避元字符(特別是在類[])?

+0

一般情況下,你不必類中逃跑的事情。 (並且你可能希望在類中放置'-'最後一個,以免在'/'和'+'之間產生一個範圍。) – Biffen

+0

它也不工作: 無效的正則表達式:意外的元字符'[0-9/+ - ] *' – Mossos

回答

0

我解決我的問題,通過使用「正規」,而不是「類似」:

Select * from (select '+49176/3421094' Tele from dummy) a 
where Tele REGEXP '[0-9/-\+]*'