我想从以下json文件中提取名称内容(David)和url内容(www.stackoverflow.com)。
我有几个问题:
如何提取以“开始”并以“结束”的字符串?
可以强制正则表达式以不属于匹配正则表达式的表达式开头。
gem 'bootsnap' unless (RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)
答案 0 :(得分:1)
注意:从长远来看,最合适的解析器是推荐这样做的方法。对于一个偶然的情况,正则表达式可能适合。
此正则表达式可以完成这项工作:
"name"\s*:\s*"(?'name'[^"]+)".*"url"\s*:\s*"(?'url'[^"]+)"
测试here。 name
和url
组包含您的数据。
答案 1 :(得分:1)
我不建议使用正则表达式解决此问题。这样的临时解析解决方案往往容易出错,过于复杂,难以扩展,并且在您最不希望的情况下无法正常使用。
相反,我建议根据您使用的语言使用适当的json解析器。对于普通外壳,jq
是一个不错的选择。这样,指定属性的路径就变得很简单了:
cat file.json | jq '.request.url'