我有一个在我的应用程序中使用的 json 数组,我需要它以那种形式出现在其他地方,所以我必须保持这种方式。我将它保存在我的数据库中的一个表中,并在需要时反序列化它。但现在我想执行一个查询来过滤其中的一些数据。
示例 json
[{"name":"SampleName","surname":"SampleSurname"}]
我希望能够做一个只给我“”内的字符串的正则表达式。 就像我想要名字一样,它给了我不带引号的“SampleName” 我怎样才能做到这一点?
编辑!
我已经在需要使用 JSON 时对其进行了解析。我刚刚在我的数据列表上实现了一个过滤器,并希望直接从 SQL 中过滤查询而无需反序列化。
所以我想做的是执行类似于以下操作的查询:
从名称如 regexp'regexhere' 的联系人中选择 *
并仅返回与我的搜索匹配的名称。我知道我可以解析 json 并获得更好的结果,我想知道一个“更快”的替代方案
最佳答案
在 java 中,您可以使用带模式匹配的正则表达式。
String result;
String str= "[{"+
"name"+
":"
+"SampleName"
+","+
"surname"+
":"+
"SampleSurname"+
"}]";
String regex ="[a-zA-Z]+";//matches only characters from a-z or A-Z
Matcher matcher = Pattern.compile( regex ).matcher( str);
while (matcher.find( ))
{
result = matcher.group();
System.out.println(result);
}
output
name
SampleName
surname
SampleSurname
关于android - 正则表达式如何从json中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12778280/