gpt4 book ai didi

Node.js 和 RegEx - 匹配字符串中的 "assignments"

转载 作者:行者123 更新时间:2023-12-02 18:56:44 24 4
gpt4 key购买 nike

使用 Node.js 和正确的正则表达式,我需要匹配任何 = ,其前面是任何不带空格的字符串,后面是任何可以包含空格的字符串。

我有一个看起来像这样的字符串:

key1=value1 key2=value2 key3=multiple values

它应该匹配 key1=value1key2=value2key3=multiple value

我已经尝试了以下方法,但它不起作用,因为我是正则表达式新手:

string.match(/.*=.+?(?=.*=)/g)

有什么帮助吗?

谢谢。

最佳答案

下面的代码可以做到这一点:(\w+)=(.*?)(?=(?:\w+=)|$)

const string = 'key1=value1 key2=value2 key3=multiple values';
const regex = /(\w+)=(.*?)(?=(?: \w+=)|$)/g

let match;
while((match = regex.exec(string))) {
const [,key, value] = match;
console.log(`Key: ${key} - Value: ${value}`)
}

分割:(\w+)=(.*?)(?=(?:\w+=)|$)

  • (\w+)= 与键匹配。捕获组#1
  • (.*?)。匹配值。捕获组#2
  • (?=(?:\w+=)|$) 正向预测,因此值匹配器会在下一个键或字符串末尾停止,而不将其包含在结果中。
<小时/>

如果您想在使用 g 标志时获取所有捕获组,请使用 //.exec 而不是 .match。否则,您必须在 =

上进行拆分

const string = 'key1=value1 key2=value2 key3=multiple values';
const regex = /(\w+)=(.*?)(?=(?: \w+=)|$)/g

let matches = string.match(regex) || [];
for(const match of matches) {
const [key, value] = match.split('=');
console.log(`Key: ${key} - Value: ${value}`)
}

关于Node.js 和 RegEx - 匹配字符串中的 "assignments",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com