我想解析顛覆日誌輸出獲取過濾信息並將它們存儲在數據庫表中。不幸的是,沒有用於Node.js的svn包裝器。我有修訂號列的修訂號列,文件列存儲所有數據和另一個消息寫入的ID。由於我在正則表達式中如此新穎,我嘗試從xml解析它 - 我們可以用xml格式( - xml)獲得svn輸出 - 到目前爲止,我試圖編寫正則表達式模式,但沒有任何運氣。以下是我有:如何使用RegexP解析Node.js中的SVN輸出?
var fs = require ('fs');
var fileName = "svnout.txt";
exports.svnparse = function(req, res) {
fs.readFile(fileName, {encoding: 'utf-8'}, function (err, data) {
if(err) { throw err;
} else {
console.log(data.toString());
return res.send(parseSvn(data));
}
});
};
var parseSvn = function(data) {
var logs = data.split('------------------------------------------------------------------------');
var data = [];
logs = logs.slice(1, -1);
for (var log in logs) {
var pattern = '\r\nr(?P<rev>\d+)\s+\|\s+(?P<author>\w+)\s+\|\s+(?P<timestamp>.*?)\s||\s+(?P<messages>.*?)\s|';
var match = logs[log].match(pattern);;
data.push({rid: match[1], name: match[2], date: match[3], message: match[4]});
saveToDB(data);
}
return {logs: data};
};