0

你能帮忙推导出一个与下面字符串的粗斜体部分匹配的正则表达式吗?里面的人物X会变。此信息来自日志文件。我需要从日志文件中删除所有时间戳。

[6/14/12 18:10:XX:XX CDT] 000001234 XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

4

3 回答 3

1

Python 中的示例

>>> import re
>>> test = '[6/14/12 18:10:XX:XX CDT] 000001234'
>>> print re.findall(r'\[6/14/12 18:10:..:.. CDT\] 000001234', test)
['[6/14/12 18:10:XX:XX CDT] 000001234']

匹配每个字符,因此.我们有 4 个点来匹配该XX:XX部分。此外,[and]是正则表达式中的特殊字符,因此我们需要对它们进行转义。

于 2012-06-14T23:43:24.033 回答
1

这是一个,在 grep 中测试过,它在引号内。应该很普遍。也可以与 grep -E 一起使用,因为它不使用任何高级正则表达式功能。

C:\>echo [6/14/12 18:10:46:XX CDT] 000001234 | grep -P "\[6/14/12 18:10:([0-9]|[
0-9][0-9]|XX):([0-9]|[0-9][0-9]|XX) CDT\] 000001234"
[6/14/12 18:10:46:XX CDT] 000001234

C:\>

所以

\[6/14/12 18:10:([0-9]|[0-9][0-9]|XX):([0-9]|[0-9][0-9]|XX) CDT\] 000001234
于 2012-06-14T23:44:56.967 回答
0

例如,在 Perl 中,假设 X 是字母数字:

/\[6/14/12\s18:10:\w{2}:\w{2}\sCDT\]\s000001234/

如果您还想捕获不同的字符,可以将它们放在括号中,然后使用反向引用:

/\[6/14/12\s18:10:(\w{2}):(\w{2})\sCDT\]\s000001234/

其他语言类似,语法略有不同。

于 2012-06-14T23:40:45.783 回答