我想将以下字符串与下面的正则表达式进行比较。它似乎不起作用。有什么建议吗?
要比较的字符串:“用户在remoteexec.log中搜索了“player”@ 02:21:31”
这是我的 Perl 代码。
my $qu_re = q{(.?) searched (.?) for "(.?)" @ (\d+):(\d+):(\d+)};
最佳答案
您缺少一些量词,+
:
my $qu_re = q{(.+?) searched (.+?) for "(.+?)" @ (\d+):(\d+):(\d+)};
^ ^ ^
否则,它们将仅匹配 0 或 1 个字符。这应该适合您,但如果您问我,我宁愿使用更具限制性的东西:
my $qu_re = q{(\w+) searched (\w+\.log) for "(\w+)" @ (\d{2}):(\d{2}):(\d{2})};
这里,我假设 User
、player
和 remoteexec
可以是字母数字并包含下划线。 {2}
靠近 \d
表示只有 2 位数字。
关于带有日志头的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17500543/