1

我对正则表达式很陌生,但我已经完成了足够的研究,可以把它放在一起。不幸的是,我遇到了障碍。我将使用这个正则表达式和 PHP preg_match 来解析一些服务器日志并返回特定的字符串,如“我的字符串”中的示例。

我的正则表达式:

\b([0-9\:]+)\s\"ANTIHAKE\sFOUND:\s+(.*?)\s\(([^)]+)\)\s+REASON:\s+(.*?)\s+\(([^)]+)\)"  

我的字符串:

15:34:51 "ANTIHAKE FOUND:  Kevin (106534790)  REASON:  Global Var  (Monky_hax_toggled)"

最终我的目标是总共提取 5 个变量:
时间 - “15:34:51”
名称 - “Kevin”
UID - “106534790”
原因 - “全局变量”
特定原因 - “Monky_hax_toggled”

我遇到的一个具体问题是捕捉原因。我似乎无法弄清楚如何将“全局变量”捕获为一个字符串,包括空格。有人会帮助我吗?

谢谢!
乔恩

4

2 回答 2

0

试试这个:

([0-9]{2}:[0-9]{2}:[0-9]{2})\s+"ANTIHAKE FOUND:\s+([^(]+)\s+\(([0-9]+)\)\s+REASON:\s+([^(]+)\s+\(([^)]+)\)"

请记住,正则表达式是根据您的示例量身定制的。

于 2013-03-20T08:39:27.157 回答
0

在 (.*?) 之后删除 \s+ 对我来说似乎没问题-:

\b([0-9\:]+)\s\"ANTIHAKE\sFOUND:\s+(.*?)\s\(([^)]+)\)\s+REASON:\s+(.*?)\(([^)]+)\)
于 2013-03-20T08:42:58.593 回答