我有一些像这样的日志
[2/16/18 3:07:24:515 GMT] 0000026b LoggerScripta I ******Print all instances******10075
[2/16/18 3:07:24:516 GMT] 0000026b LoggerScripta I ******Print all instances******10078
[2/16/18 3:07:24:516 GMT] 0000026b LoggerScripta I ******Print all instances******10080
大约300行..但我只需要每行中的那些数字(10075)并且休息时应该删除。有任何正则表达式可以帮助轻松获得那些,
我正在使用Notepad ++
任何帮助都非常有用,因为这样可以节省一天的时间
答案 0 :(得分:0)
我将继续并假设这些行中的每一行都是一个字符串,每个字符串都是数组中的元素。如果这个假设成立,那么这就是代码。否则,请更新数据如何存储在JavaScript中,我将重写我的答案:
// If your logs are an array of strings...
var logs = [
'[2/16/18 3:07:24:515 GMT] 0000026b LoggerScripta I ******Print all instances******10075',
'[2/16/18 3:07:24:516 GMT] 0000026b LoggerScripta I ******Print all instances******10078',
'[2/16/18 3:07:24:516 GMT] 0000026b LoggerScripta I ******Print all instances******10080'
];
var numbersFromArray = logs.map((val) => {
return val.split('***')
.reverse()[0];
});
console.log(numbersFromArray);
// If your logs are a single string...
var logs = '[2/16/18 3:07:24:515 GMT] 0000026b LoggerScripta I ******Print all instances******10075 [2/16/18 3:07:24:516 GMT] 0000026b LoggerScripta I ******Print all instances******10078 [2/16/18 3:07:24:516 GMT] 0000026b LoggerScripta I ******Print all instances******10080';
var numbersFromString = logs.split('[')
.map((val) => {
return val.split('***')
.reverse()[0]
.trim();
})
.filter((val) => val !== '');
console.log(numbersFromString)

答案 1 :(得分:0)
如果您正在使用notepad ++并且想删除换行符之前的最后一位数字,那么使用正则表达式启用查找/替换就足够了
查找:(.*\*)(\d+(\r\n)?)
替换(正则表达式):\2
它的作用:
第一个捕获组查找以星号结尾的任何内容(贪婪)。
第二个捕获组会查找一组数字加上换行符(如果它在那里)(可能不是最后一个日志语句)。
替换将只为每行提供第二个捕获组。
答案 2 :(得分:0)
使用Notepad ++:
^.+?(\d+)$
$1
. matches newline
<强>解释强>
^ : beginning of line
.+? : 1 or more any character but newline, not greedy
( : start group 1
\d+ : 1 or more digits
) : end group
$ : end of line
<强>替换强>
$1 : content of group 1
给定示例的结果:
10075
10078
10080