我有一些Json文本响应,我正在解析并需要提取一些值。这就是我正在做的事情。
在Json回复中我有这样的事情:
"createdOn": 1405536449291,
"updatedOn": 1405536511282,
"url": "https://www.myurl.com/path/v1/resource.json?parameter=test¶meter_2=\"JohnSmith\"",
...etc
我需要拉出/捕获这3个值(只是值,没有引号/逗号围绕Json值)
1405536449291
1405536511282
https://www.myurl.com/path/v1/resource.json?parameter=test¶meter_2=\"JohnSmith\"
Here is what I have so far.正如您所看到的,我非常接近。 createdOn
和updatedOn
值是正确的,但问题是第一个引号围绕" JohnSmith"导致正则表达式认为它已经完成。
我错过了这个问题的解决方法吗?感谢。
答案 0 :(得分:-1)
只需从模式中移除 \"
即可。
所以
(?:url|createdOn|updatedOn)\":\\s\"?([^\",]*)
变为
(?:url|createdOn|updatedOn)\":\\s\"?([^,]*)
所以它停在逗号而不是引号
编辑:
我现在注意到你提供的代码中的字符串似乎格式不正确。它是sais:
\"https://www.myurl.com/path/v1/resource.json?parameter=test¶meter_2=\"JohnSmith\"
但应该说
\"https://www.myurl.com/path/v1/resource.json?parameter=test¶meter_2=\"JohnSmith\"\"
因为URL的末尾也应该有一个引号。
在这种情况下,可以使用以下模式解决:
(?:url|createdOn|updatedOn)\":\\s\"?(.*?)\"?,