Android Java正则表达式匹配
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android Java正则表达式匹配,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1442字,纯文字阅读大概需要3分钟。
内容图文
![Android Java正则表达式匹配](/upload/InfoBanner/zyjiaocheng/743/2c7c1aa70ab043cb85dae38c38dc45b7.jpg)
我正试图拔出字符串:
[{"name":"John Doe Jr."},{"name2":"John Doe"}] & {"name":"John Doe"}
从下面的JSON字符串中的有效负载:
{"to":"broadcast", "type":"50", "payload":[{"name":"John Doe Jr."},{"name2":"John Doe"}]}
{"to":"broadcast", "type":"50", "payload":{"name":"John Doe"}}
使用这个正则表达式代码:
Pattern pattern = Pattern.compile("\\{(.*?)\"payload\":\"(.*?)\"\\}\\}");
Matcher matcher = pattern.matcher(jsonString);
我收到了IllegalStateException:到目前为止没有成功匹配
我的正则表达式出了什么问题?
另外如何获得它找到的匹配数量?
任何帮助,将不胜感激.
解决方法:
这应该工作:
String someJson ="{\"to\":\"broadcast\", \"type\":\"50\", \"payload\":[{\"name\":\"John Doe Jr.\"},{\"name2\":\"John Doe\"}]}";
Pattern p = Pattern.compile(".*?payload\":(.*)}");
Matcher m = p.matcher(someJson);
if (m.matches()) {
String payload = m.group(1);
}
在该有效负载之后将具有值[{“name”:“John Doe Jr.”},{“name2”:“John Doe”}]
或{“name”:“John Doe”}
一些说明:
>只要有效内容元素是json字符串中的最后一个json对象,此正则表达式才有效.
>正如其他人所说:用json api做这个会更好(也更容易)(见下文)
>如果您可以控制json字符串,最好只返回一个元素,而不是直接返回元素.因此,您无需编写额外的代码来读取单个元素.
使用Androids JSONObject,它看起来像这样:
JSONObject json = new JSONObject(someJson);
try {
JSONArray payload = json.getJSONArray("payload");
} catch (Exception e) {
// array conversion can fail for single object
JSONObject payload = json.getJSONObject("payload");
}
内容总结
以上是互联网集市为您收集整理的Android Java正则表达式匹配全部内容,希望文章能够帮你解决Android Java正则表达式匹配所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。