gpt4 book ai didi

javascript - 用正则表达式提取 `:` 对

转载 作者:行者123 更新时间:2023-12-04 14:46:11 25 4
gpt4 key购买 nike

有一个文本区域,想用 key:value 提取(如下图所示)

enter image description here

我有一个正则表达式,但没有按预期工作

/([^\s][a-zA-Z!]+:(\s)?"?([a-z0-9\s.]+)"?[^ $])/gi

如果此时用户输入以下字符串,则正则表达式会打破 key:value 组。

is:"browser"浏览器:"chrome 11.11 V"节点:错误类型:"Error"

预期群体:

is:"browser"
browser: "chrome 11.11 V"
node: error
type:"Error"

最佳答案

你可以使用

const text = 'is:"browser" browser: "chrome 11.11 V" node: error type:"Error"';
const re = /(\w+):\s*(?:"([^"]*)"|(\S+))/g;
let dict = {}, m;
while(m = re.exec(text)) {
dict[m[1]]=(m[3] || m[2]);
}
console.log(dict);

// Or just get all matches:
console.log(text.match(re))

参见 regex demo . 详细信息:

  • (\w+) - 第 1 组:一个或多个单词字符
  • : - 冒号
  • \s* - 零个或多个空格
  • (?:"([^"]*)"|(\S+)) - 两者之一
    • "([^"]*)" - ",0+ 非逗号(在第 2 组中捕获),"
    • | - 或者
    • (\S+) - 第 3 组:一个或多个非空白字符。

关于javascript - 用正则表达式提取 `<key>:<value>` 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70000661/

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