Javascript NODEJS:提取两个不同字符之间的字符串并将其存储在数组中

Javascript NODEJS:提取两个不同字符之间的字符串并将其存储在数组中,javascript,arrays,regex,node.js,string,Javascript,Arrays,Regex,Node.js,String,使用nodejs,我需要提取两个不同字符之间的所有字符串,并将它们存储在一个数组中以备将来使用。 例如,考虑一个文件,其中包含一个具有以下内容的文件。 "type":"multi", "folders": [ "cities/", "users/" ] 我需要提取单词:城市和用户,并将它们放入一个数组中。一般来说,我希望“和/”之间的单词能起作用 "(.+?)\/" “先前的 1个或多个字符(非贪婪) 后跟/” 这应该行得通 "(.+?)\/" “先前的 1个或多个字符(非

使用nodejs,我需要提取两个不同字符之间的所有字符串,并将它们存储在一个数组中以备将来使用。 例如,考虑一个文件,其中包含一个具有以下内容的文件。
"type":"multi",
"folders": [
    "cities/",
    "users/"
]
我需要提取单词:城市用户,并将它们放入一个数组中。一般来说,我希望“和/”之间的单词能起作用

"(.+?)\/"
  • “先前的
  • 1个或多个字符(非贪婪)
  • 后跟/”
  • 这应该行得通

    "(.+?)\/"
    
  • “先前的
  • 1个或多个字符(非贪婪)
  • 后跟/”
  • 正如一篇评论中提到的,这看起来与JSON(.)非常相似,所以我将假设它是这样写我的答案。要使当前示例成为有效的JSON,它需要位于对象括号内,如下所示:

    {
        "type": "multi",
        "folders": [
            "cities/",
            "users/"
        ]
    }
    
    如果您分析这个:

    var parsed_json = JSON.parse( json_string );
    
    // You could add the brackets yourself if they are missing:
    var parsed_json = JSON.parse('{' + json_string + '}');
    
    然后,您只需执行以下操作即可到达阵列:

    var arr = parsed_json.folders;
    console.log(arr);
    
    // .map calls a function for every item in an array
    // And whatever you choose to return becomes the new array
    arr = arr.map(function(item){ 
      // substr returns a part of a string. Here from start (0) to end minus one (the slash).
      return item.substr( 0, item.length - 1 );
    
      // Another option could be to instead just replace all the slashes:
      return item.replace( '/' , '' );
    }
    
    为了修复恼人的尾部斜线,我们重新映射了阵列:

    var arr = parsed_json.folders;
    console.log(arr);
    
    // .map calls a function for every item in an array
    // And whatever you choose to return becomes the new array
    arr = arr.map(function(item){ 
      // substr returns a part of a string. Here from start (0) to end minus one (the slash).
      return item.substr( 0, item.length - 1 );
    
      // Another option could be to instead just replace all the slashes:
      return item.replace( '/' , '' );
    }
    
    现在,后面的斜杠消失了:

    console.log( arr );
    
    正如在一篇评论中提到的,这看起来与JSON(.)非常相似,所以我将假设它是。要使当前示例成为有效的JSON,它需要位于对象括号内,如下所示:

    {
        "type": "multi",
        "folders": [
            "cities/",
            "users/"
        ]
    }
    
    如果您分析这个:

    var parsed_json = JSON.parse( json_string );
    
    // You could add the brackets yourself if they are missing:
    var parsed_json = JSON.parse('{' + json_string + '}');
    
    然后,您只需执行以下操作即可到达阵列:

    var arr = parsed_json.folders;
    console.log(arr);
    
    // .map calls a function for every item in an array
    // And whatever you choose to return becomes the new array
    arr = arr.map(function(item){ 
      // substr returns a part of a string. Here from start (0) to end minus one (the slash).
      return item.substr( 0, item.length - 1 );
    
      // Another option could be to instead just replace all the slashes:
      return item.replace( '/' , '' );
    }
    
    为了修复恼人的尾部斜线,我们重新映射了阵列:

    var arr = parsed_json.folders;
    console.log(arr);
    
    // .map calls a function for every item in an array
    // And whatever you choose to return becomes the new array
    arr = arr.map(function(item){ 
      // substr returns a part of a string. Here from start (0) to end minus one (the slash).
      return item.substr( 0, item.length - 1 );
    
      // Another option could be to instead just replace all the slashes:
      return item.replace( '/' , '' );
    }
    
    现在,后面的斜杠消失了:

    console.log( arr );
    

    我对nodejs和javascript非常陌生。我把这个当作练习。我发现这样做的方法是使用匹配方法。但是我在放置正确的分隔符方面失败了。您能否将您失败的尝试添加到问题中,这样我们就有了一个共同点:您的文件实际上是否包含JSON?还是亚马尔?解析它。我对nodejs和javascript非常陌生。我把这个当作练习。我发现这样做的方法是使用匹配方法。但是我在放置正确的分隔符方面失败了。您能否将您失败的尝试添加到问题中,这样我们就有了一个共同点:您的文件实际上是否包含JSON?还是亚马尔?解析它。谢谢,这很有帮助。但是,这会提取带有字符串的“和/。但我不希望这些字符包含在子字符串中。您希望从该JSON输出什么?如果您将正则表达式更改为(?:)(.+?)(?:\/”),则“等”在非捕获组中。如果这是你想要的。谢谢,这很有帮助。但是,这会提取带有字符串的“和/。但我不希望这些字符包含在子字符串中。您希望从该JSON输出什么?如果您将正则表达式更改为(?:)(.+?)(?:\/”),则“等”在非捕获组中。如果那是你想要的。