Php 正则表达式在日志文件中查找字符串,并将字符串分成若干部分
我对regex很陌生,但我已经做了足够多的研究来总结这一点。不幸的是我撞到了一个街区。我将使用这个带有PHP preg_匹配的正则表达式来解析一些服务器日志,并返回特定字符串,如我字符串中的示例 我的正则表达式:Php 正则表达式在日志文件中查找字符串,并将字符串分成若干部分,php,regex,whitespace,Php,Regex,Whitespace,我对regex很陌生,但我已经做了足够多的研究来总结这一点。不幸的是我撞到了一个街区。我将使用这个带有PHP preg_匹配的正则表达式来解析一些服务器日志,并返回特定字符串,如我字符串中的示例 我的正则表达式: \b([0-9\:]+)\s\"ANTIHAKE\sFOUND:\s+(.*?)\s\(([^)]+)\)\s+REASON:\s+(.*?)\s+\(([^)]+)\)" 我的字符串: 15:34:51 "ANTIHAKE FOUND: Kevin (106534790)
\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
姓名-凯文
UID-106534790
原因-全局Var
具体原因-Monky_hax_切换
我遇到的一个具体问题是捕捉原因。我似乎不知道如何将全局变量捕获为一个字符串,包括空格。有人能帮我吗
谢谢!
乔恩试试这个:
([0-9]{2}:[0-9]{2}:[0-9]{2})\s+"ANTIHAKE FOUND:\s+([^(]+)\s+\(([0-9]+)\)\s+REASON:\s+([^(]+)\s+\(([^)]+)\)"
请记住,regexp是根据您的示例定制的。只是在。*之后删除\s+?对我来说似乎没问题-:
\b([0-9\:]+)\s\"ANTIHAKE\sFOUND:\s+(.*?)\s\(([^)]+)\)\s+REASON:\s+(.*?)\(([^)]+)\)
让我补充一下,所有5个变量都是动态的。ANTIHAKE发现:原因:将始终是静态的,时间格式也是如此。您的正则表达式已经可以正常工作了。看这里,我一定是起床太久了,谢谢你的澄清。惊人的快速反应太!你太棒了。谢谢,但根据神秘的说法,我的正则表达式已经开始工作了。谢谢你的快速回复。你完全正确。谢谢!