【发布时间】:2017-02-22 21:20:21
【问题描述】:
我正在尝试匹配 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/g 和 new RegExp() 有什么区别?我该如何解决这个问题?我已经尝试过 TypeScript 1.8.7 和 2.0(虽然我不认为它是相关的......)。
任何帮助将不胜感激,谢谢!
仅供参考,Rust 编译器输出的示例可能是:https://regex101.com/r/vKFWYW/1
【问题讨论】:
标签: javascript regex typescript