regex 如何基于正则表达式模式和条件拆分字符串(JavaScript)

pgx2nnw8  于 2022-11-26  发布在  Java
关注(0)|答案(1)|浏览(106)

我试图拆分一个字符串,这样我就可以根据一种模式将其分开。我在获得正确的正则表达式模式时遇到了麻烦。我还需要将结果插入到一个对象数组中。也许通过使用正则表达式模式,这个字符串可以被拆分成一个数组对象来实现这个目标。注意正则表达式模式不能区分---。或者有没有更好的方法来做到这一点?
我尝试使用字符串split()方法,但没有效果。我尝试实现以下结果:

const example1 = `--filename test_layer_123.png`;
const example2 = `--code 1 --level critical -info "This is some info"`;

const result1 = [{ name: "--filename", value: "test_layer_123.png" }];
const result2 = [
    { name: "--code", value: "1" },
    { name: "--level", value: "critical" },
    { name: "-info", value: "This is some info" },
];
2skhul33

2skhul331#

如果你真的想用正则表达式来解决这个问题。
试试这个
程式码范例:

function matchAllCommands(text, pattern){
  let new_array = [];
  let matches = text.matchAll(pattern);
  for (const match of matches){
    new_array.push({name: match.groups.name, value: match.groups.value});
  }
  return new_array;
}

let RegexPattern = /(?<name>(?:--|-)\w+)\s+"?(?<value>[^-"]+)"?/g;
let text = '--code 1 --level critical -info "This is some info"';

console.log(matchAllCommands(text, RegexPattern));

相关问题