Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 将text/config文件中定义的regex与数据库中的字符串与filter/whitelist匹配_Python 3.x_Sqlite - Fatal编程技术网

Python 3.x 将text/config文件中定义的regex与数据库中的字符串与filter/whitelist匹配

Python 3.x 将text/config文件中定义的regex与数据库中的字符串与filter/whitelist匹配,python-3.x,sqlite,Python 3.x,Sqlite,主要内容是“如何获取文本文件中包含的正则表达式字符串列表,并在考虑排除/白名单的情况下查找特定数据库列上的所有匹配项” 示例文本文件: [Bad 192 address]=192\.168\.(1|2)\.\d{1,3} / (192\.168\.(1|2)\.1) [Bad 172 address]=172\.(?:1[6-9]|2[0-9]|3[01])\.\d{1,3}\.\d{1,3} / (172\.(?:1[6-9]|2[0-9]|3[01])\.\d{1,3}\.1) [Bad 1

主要内容是“如何获取文本文件中包含的正则表达式字符串列表,并在考虑排除/白名单的情况下查找特定数据库列上的所有匹配项”

示例文本文件:

[Bad 192 address]=192\.168\.(1|2)\.\d{1,3} / (192\.168\.(1|2)\.1)
[Bad 172 address]=172\.(?:1[6-9]|2[0-9]|3[01])\.\d{1,3}\.\d{1,3} / (172\.(?:1[6-9]|2[0-9]|3[01])\.\d{1,3}\.1)
[Bad 10 address]=10\.\d{1,3}\.\d{1,3}\.\d{1,3} / (10\.0\.(0|120|250)\.1
在上面的示例中,我将正则表达式匹配的名称放在括号中,然后是原始正则表达式匹配,最后是我希望应用于此正则表达式匹配的过滤器,括号中用“/”将其与原始正则表达式匹配分开

我想指出一个包含结构类似的正则表达式匹配的文件,并针对一个表中的一列或数据库中的多个表运行它们。在本例中,想法是查找所有未列入白名单的私有IP空间匹配项,并将匹配项与相关签名的名称一起输出。所以一个点击可能看起来像“[坏192地址]192.168.1.58”

最初,我逐行遍历文件,将每个规则拆分为一个包含3个项(sig、regex和filter)的数组,将它们在函数中分配给我可以使用的变量,并根据规则发送一个SQL SELECT查询,试图从返回的匹配中丢弃白名单中的值,但这无法可靠地工作,并且给了我糟糕的性能。对于上下文,我需要能够遍历100万行,但我可能能够将带外值减少为数千个唯一值


主要关注的是在文件A中获取已定义的regexe字符串、在数据库B中运行它们、丢弃任何白名单值、吐出字符串匹配以及相关的“签名”的机制。

而您对如何执行这四件事中的任何一件事都毫无头绪?问题不仅仅是如何执行,这是如何有效地处理它。我描述了我目前用来解决这个问题的方法,但我还是希望能够有效地迭代至少数千行(如果不是数百万行的话),以获得配置文件中定义的15+disctinct正则表达式匹配。您是如何进行正则表达式匹配和筛选的?展示代码。你根本不知道如何做这四件事中的任何一件?问题不只是如何做,而是如何有效地处理。我描述了我目前用来解决这个问题的方法,但我还是希望能够有效地迭代至少数千行(如果不是数百万行的话),以获得配置文件中定义的15+disctinct正则表达式匹配。您是如何进行正则表达式匹配和筛选的?显示代码。