【问题标题】:Regexp to keep values from json string正则表达式保留来自 json 字符串的值
【发布时间】:2013-08-21 18:13:36
【问题描述】:

我有一个这样的json字符串

"{\"firstName\": \"John\",\"lastname:\"smith\"}"

如何在不使用 parsejson 的情况下从该字符串中获取值 (John,smith),就像使用 regEx 一样?

【问题讨论】:

  • 您使用什么语言?即什么正则表达式风格?
  • 我可以向您保证,您可能试图以错误的方式处理您的问题。
  • @ricovox 问题被标记为JavaScript
  • 您的 json 是否总是具有这两个字段,或者您是否需要适用于任意 json 字符串的解决方案?
  • @ricovox ,是的,我需要一个适用于任意 json 的解决方案

标签: javascript regex json


【解决方案1】:

如果这是一个“扁平”JSON 字符串,这意味着其他对象中没有对象嵌套,那么您可以编写一个正则表达式来执行此操作。否则,如果存在嵌套,那么您需要一个完整的标记器/解析器来完成它。原因是regex只适用于Regular languages,而JSON比较复杂,需要一个regex没有的stack

【讨论】:

    【解决方案2】:

    试试这个:

    var name = the_string.match(/\{"firstName": "([^"]+)", "lastname": "([^"]+)"\}/),
    var firstname = name[0],
        lastname  = name[1];
    

    话虽如此,您应该始终使用 JSON.parse 处理 JSON。真的。

    【讨论】:

    • 我想你的意思是name[0]name[1]。没有定义match 变量。
    • 我需要一个适用于任何 json 字符串的解决方案 firstNamelastname 用于例如
    • 存在语法错误,即使已修复,此代码也无法生成正确答案。
    猜你喜欢
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 2018-09-07
    • 2020-05-06
    • 2018-01-02
    • 2014-11-22
    相关资源
    最近更新 更多