如何减少正则表达式的计算时间

时间:2015-12-22 12:11:29

标签: regex

我正在制作正则表达式,以便从Graylog中查找所选的日志消息。问题是我只能使用一个正则表达式来处理各种消息。所以我制作了正则表达式:

thrownError

但计算量很大。这些消息中有用户名,IP等,所以我没有多少可能性如何摆脱递归部分。所以最好使用

$.ajax({
  ...
  error: function(xhr, ajaxOptions, thrownError) {
      console.log("thrownError: " + thrownError);
  }   
});

或者我应该尝试尽可能多地在消息中找到字符串?简而言之,是正则表达式:

^<189>.*Authenticate\sfail.*

比计算性能更好:

.*

1 个答案:

答案 0 :(得分:3)

在这种情况下,

^<189>.*Authenticate\sfail.*

会更快。

您可以使用Regex 101网站查看运行正则表达式需要多少步骤。将您的日志粘贴到测试字符串字段中,玩转并找到需要尽可能少的步骤的解决方案。