如果将特定字符串作为输入,是否有任何工具可以为我构建通用正则表达式?
目前,我将满足于实际的正则表达式而不是工具。
请注意,在我的情况下,我可以在尖括号中使用 HOST 来表示正则表达式中的 IP 地址。我的目标是为名为“fail2ban”的工具构建一个正则表达式。
假设我的字符串是 [2012-11-06 22:52:40] NOTICE[4339] chan_sip.c: 从 '"202"' 为 '111.111.11.1:9546' 注册失败 - 密码错误
(看起来这个论坛显然正在删除符号和/或以其他方式弄乱我的字符串,所以我将使用以下约定,以便您可以看到它应该说的内容:DQ 代表双引号“实验室代表左角BRACKET < RAB 表示直角括号 > AT 表示 at 符号 @ )
使用上述约定:
[2012-11-06 22:52:40] 通知 [4339] chan_sip.c:从 'DQ 202 DQ LAB sip:202 AT emailAddress RAB' 注册失败,用于 '111.111.11.1:9546' - 密码错误
请注意,我在符号之间添加了空格以增加可读性。它们不是原始字符串的一部分。
我试过 NOTICE.* 。: 从 '. ' failed for ':.*' - 密码错误
和:注意。*。: 从 '\". \"' 注册失败 ':.*' - 密码错误
请问什么是正确的正则表达式?
先感谢您
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
旁注:如果不存在,如果有人可以构建一个工具来自动构建给定特定字符串的正则表达式,那肯定会很好。
这就是我的想法。
下面的 C 库函数可以轻松地解析该字符串isalphanum(c), isalpha(c), isdigit(c), ispunct(c), isspace(c)
。
困难的部分是构建一个正则表达式生成器。