在android中使用sqlite的正则表达式

时间:2014-01-03 16:10:08

标签: android regex sqlite

我对正则表达式有困难,我有一个表产品,其中一个字段是一个时期。 我想按用户在我的应用程序中输入的时间段过滤记录。 例如,期间可能是2006-2012或2006年 -

我想过滤所有仅包含模式2006-

的记录

我尝试了很多例子,但遗憾的是没有任何正常工作

这是我的代码

Cursor c = rDB.rawQuery("select title,price from Products,UserProducts where UserProducts.product_code=Prodcuts.product_code and USER_EMAIL=? and Products.period like '%[0-9]+%' group by UserSeries.product_code order by Products.title asc", new String[]{email});
while(c.moveToNext())
{
         //save the records 
}

1 个答案:

答案 0 :(得分:4)

Products.period like '%[0-9]+%'

LIKE不适用于正则表达式。

要使用正则表达式匹配,请使用REGEXP运算符。请注意,默认情况下为REGEXP operator is not implemented,即使语法支持它。

为了更简单的匹配需求,您还可以考虑GLOB

  

我想过滤所有仅包含模式2006的记录 -

你不需要正则表达式。

Products.period like '2006-%'

将匹配period以字符串2006-开头的任何内容。


  

我的意思是" - "最后的符号

Products.period like '%-'

将匹配period以字符串-结尾的任何内容。