我需要解析一个包含数据库查询的字符串。
有效字符串可以是:
以下内容无效:
weight:100<PENDING
我的第一次尝试是在Java中:
Pattern p = Pattern.compile("(\\w+?)(:|<|>)(\\w+)(|,)*(\\w+)*$");
显然,它无法正确解析最后一个语句。
答案 0 :(得分:0)
我认为用regexpression验证这一点是一件好事。 但你可以尝试这个表达式:
"([\\w]+)(:(([A-Z]+)|([A-Z]+,([A-Z]+)))|(>[0-9]+))"
它适用于我的在线regexpression测试仪,用于输入
答案 1 :(得分:0)
我根据您的要求创建了这个表达式:
Pattern pattern = Pattern.compile("((Status:(OPEN|PENDING|OPEN,PENDING|REJECTED))|(type:(SMALL|BIG))|(weight[<>]\\d+))");
其他任何内容都与无效状态,类型等相匹配
例如:
这些都是无效的:
Status>100
type:REJECTED
weight:100
希望这有帮助!