android - 正则表达式如何从json中提取数据

标签 android regex sqlite

我有一个在我的应用程序中使用的 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/

相关文章:

android - 在上传到 android 中的 playstore 之前管理数据库

sqlite - sqlite 中是否有任何查询来选择子字符串?

android 通知大图像不工作

Android App文件夹文件系统访问

Java 字符串标记

c# - 为数字符号编写正则表达式

android - 操作栏样式问题

Android 无法使用 NDK r7 中的 NDK-Build.cmd 构建项目

Python Regex - 非贪婪匹配不起作用

sqlite - 将 SQLite 与经典 ASP 结合使用