gpt4 book ai didi

javascript - `/REG/g` 和 `new RegExp()` 之间的不同行为?

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:26 25 4
gpt4 key购买 nike

<分区>

我正在尝试匹配 Rust 编译器错误输出中的组件。这是我正在使用的正则表达式:

let newErrorRegex = /(warning|error|note|help)(?:\[(.*)\])?\: (.*)\s+--> (.*):(\d+):(\d+)\n(?:((?:.+\n)+)\.+)?(?:[\d\s]+\|.*)*((?:\s+=.*)+)?/g;

它工作正常但是它太长了,所以我想把它分成多行。然后我尝试了 new RegExp():

let newErrorRegex = new RegExp('(warning|error|note|help)(?:\[(.*)\])?\: (.*)\s+--> (.*):(\d+):(\d+)\n(?:((?:.+\n)+)\.+)?(?:[\d\s]+\|.*)*((?:\s+=.*)+)?', 'g');
const match = newErrorRegex.exec(output);

但是这次不行了!然而,一些更简单的实例没有这样的问题,例如,

let testRegexp = new RegExp('abc', 'g');
const match = testRegexp.exec('abcabc');

/REG/gnew RegExp() 有什么区别?我该如何解决这个问题?我已经尝试过 TypeScript 1.8.7 和 2.0(虽然我不认为它是相关的......)。

任何帮助将不胜感激,谢谢!

仅供引用,Rust 编译器输出的示例可能是:https://regex101.com/r/vKFWYW/1

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