RegExp以匹配键值对列表中的值

RegExp to match values in list of key-value pairs

本文关键字:列表 键值对 RegExp      更新时间:2023-09-26

我有一个键值对列表,如下所示:

key1 val1
key2 val2
key3 val3

我想要一个正则表达式来匹配这些值。例如:

['val1', 'val2', 'val3']

我还没有找到一种方法来做到这一点,而在javascript中是不可用的。

您可以使用类似以下的正则表达式:/.*' (.*)/g|Tested here

完整的工作循环:

var str = "key1 val1'nkey2 val2'nkey3 val3";
regex = /.*' (.*)/g;
values = [];
while ((result = regex.exec(str))) {
   values.push(result[1]);
}

此外,我个人也使用这样的工具进行regex测试,这在刚开始的时候非常方便。

如果键和值之间只有一个空格,则可以通过空格字符进行分割

var str = 'key1 val1';
var data = str.split(' ');
var key = data[0];
var value = data[1];

现在,如果您的值可能包含空格

var str = 'key1 val1';
var data = str.split(' ');
var key = data.shift();
var value = data.join(' ');

你可以试试这样的东西:

var str = "key1 val1'nkey2 val2'nkey3 val3";
var result = str.split(/'n/).map(function(item) {
  return /.* (.*)/.exec(item)[1];
})

https://jsfiddle.net/yLk7hs86/2/