我已经为AtomBuilder创建了一个构建包,我想扩展它以捕获发生错误的文件路径和行号。我无法为此找到有效的RegEx模式。
以下是错误消息的常见内容:
Processing script file: "/Users/johndoe/Projects/test.nsi" (UTF8)
Invalid command: Foo
Error in script "/Users/johndoe/Projects/test.nsi" on line 5 -- aborting creation process
我真的只是在最后一行之后,因为之前的行数可能会有所不同,具体取决于错误。我需要捕获引号和行号的数字之间的文件路径(Windows和Unix)。
以下是我的尝试:
errorMatch: [
'((.|\\n)*)Error in script "(?<file>[^"]+) on line (?<line>\\d+) -- aborting creation process'
]
答案 0 :(得分:0)
答案 1 :(得分:0)
尝试使用捕获组来匹配您需要的部分
var regex = /Error in script "(.*)" on line (\d+)/;
var match = message.match(regex);
if (match && match.length) {
var filepath = match[1];
var linenumber = match[2];
console.log(filepath); // /Users/johndoe/Projects/test.nsi
console.log(linenumber); // 5
}
JSFiddle演示:https://jsfiddle.net/moogs/zuodcsL7/
Regex101演示:https://regex101.com/r/wU0aH4/1
答案 2 :(得分:0)
这是我最终使用的内容:
const errorMatch = [
'\\n(?<message>.+)\\nError in script "(?<file>[^"]+)" on line (?<line>\\d+) -- aborting creation process'
];