微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

安卓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时,光标不会移到下一个

怎么了?

解决方法:

替换中不提供正则表达式支持,Android sqlite也未提供正则表达式功能的实现.

最好的选择是添加另一列,该列用于搜索,并且在其中删除了不重要的字符的值.您可以在Java代码中使用正则表达式.

如果这不是一个选项,并且特殊字符集很小,则可以使用嵌套替换:

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

但是如您所见,这变得很麻烦.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐