2014-01-31 70 views
3

我想讓查詢字段,其中沒有非數字符號。Android。 SQLite的。刪除所有非數字

Cursor c=context.getContentResolver().query(Uri.parse("content://mms-sms/canonical-addresses/"), new String[] {"address","_id"}, "replace("+"address"+", '[^0-9]','')"+" LIKE ?", new String[] {"%"+subaddress+"%"}, null); 

但是當我通過子地址8888888在DB號格式+7(888)888-88-88搜索,光標未使用MoveToNext

的哪些錯誤?

+1

'replace'中沒有正則表達式支持。 – laalto

+0

它是什麼? - http://stackoverflow.com/questions/17004281/hyphens-are-an-issue-in-getting-contact-details-with-a-partial-phone-number – user1755546

回答

3

replace中沒有正則表達式支持,而且Android sqlite也不提供regex函數的實現。

您最好的選擇是添加另一個列,您用於搜索和值被剝奪無關緊要的字符。您可以在Java代碼中使用您的正則表達式。

如果這不是一個選項,設定的特殊字符是小,你可以使用嵌套的替代對象:

replace(replace(replace(replace(address, '+', ''), '-', ''), '(', ''), ')', '') 

但正如你可以看到這個變得繁瑣。

相關問題