我对正则表达式有困难,我有一个表产品,其中一个字段是一个时期。 我想按用户在我的应用程序中输入的时间段过滤记录。 例如,期间可能是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
}
答案 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
以字符串-
结尾的任何内容。