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

时间:2016-09-06 11:50:17

标签: javascript arrays regex node.js string

使用nodejs,我需要在两个不同的字符之间提取所有字符串,并将它们存储在一个数组中以备将来使用。 例如,考虑一个文件,其中包含具有以下内容的文件。

     $ses = session()->getId();
     $a =session()->getId();    
     $chat = chatParticipants::where("session_id", $a)->first();

我需要提取单词:城市用户,并将它们放在一个数组中。一般来说,我想要"之间的话。和/"

2 个答案:

答案 0 :(得分:2)

正如Bergi在评论中提到的那样,这看起来与JSON(javascript object notation)非常相似。)所以,我会写下我的答案,假设它是。为了使您当前的示例成为有效的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( '/' , '' );
}

现在结尾的斜杠消失了:

console.log( arr );

答案 1 :(得分:0)

这应该有用。

$hour
  1. “前面的
  2. 1个或更多字符(非贪婪)
  3. 后跟/“
  4. REGEX101