我在C#中使用了正則表達式。如何在Javasript中使用這種類型的正則表達式。這種類型的正則表達式在C#中工作。正則表達式JavaScript。用當前正則表達式解析日誌文件
我有以下的正則表達式:
(?<Month>[A-Za-z]{3}) (?<Date>[0-9]{2}) (?<Hour>[0-9]{2}):(?<Minutes>[0-9]{2}):(?<Seconds>[0-9]{2}) (?<ComputerName>[A-Za-z0-9\-\ ]+): (?<KernalTime>[0-9\.\[\]\ ]+) (?<Message>[A-Za-z\(\)\.\ ]+)
解析以下行(所有的線條都類似):在javascript中我用下面的代碼
Nov 24 14:24:31 Dell-Inspiron-N5110 kernel: [ 0.000000] Intel GenuineIntel
。
matchRegexParse: function() {
var myString = "Nov 24 14:24:31 Dell-Inspiron-N5110 kernel: [ 0.000000] Intel GenuineIntel";
var myRegexp = new RegExp(
"(?<Month>[A-Za-z]{3}) (?<Date>[0-9]{2}) (?<Hour>[0-9]{2}):(?<Minutes>[0-9]{2}):(?<Seconds>[0-9]{2}) (?<ComputerName>[A-Za-z0-9\-\ ]+): (?<KernalTime>[0-9\.\[\]\ ]+) (?<Message>[A-Za-z0-9\(\)\.\ \-\:]+)",
"gi");
var match = myRegexp.exec(myString);
alert(match);
},
我收到以下錯誤(見附件圖片):
EDIT(錯誤文本):
Uncaught SyntaxError: Invalid regular expression:
/(?<Month>[A-Za-z]{3}) (?<Date>[0-9]{2}) (?<Hour>[0-9]{2}):(?<Minutes>[0-9]{2}):(?<Seconds>[0-9]{2}) (?<ComputerName>[A-Za-z0-9\-\ ]+): (?<KernalTime>[0-9.\[\]\ ]+) (?<Message>[A-Za-z0-9\(\)\.\ \-\:]+)/
: Invalid group
首先你應該使用正則表達式來避免轉義(你忘記了)。見https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions –
@ p.s.w.g見我編輯 –