首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的URL模式匹配

Python中的URL模式匹配
EN

Stack Overflow用户
提问于 2017-01-20 05:40:09
回答 1查看 52关注 0票数 0

我希望写一个程序来匹配URI列表中的恶意URN,问题很简单,但由于Python的基本技能,以及C++之类的知识更少,我不知道从哪里开始,因为谷歌给我留下的工作很少。所以,如果可能的话,Python建议对我来说是最简单的,只要有一点指导就行了,但我会尽可能地去做。

这里是这样的场景:我将有一个CSV的恶意网页,这些恶意网页的URI中通常有一些静态标识符,我需要比较每个字符串中的一些长度(例如4-10)的字符,然后输出任何匹配的字符串。我被困住的部分是如何列出100个URL并对每个URL进行可行的测试。

示例: uri1: hxxp://域名/abcdefghijklmnopqrstuvwxyz uri2: hxxp://域名/0123456789!@#$%^&*()_+-=

因此,循环会将abcd与0123进行比较,然后是1234、3456等。然后bcde到0123,依此类推...显然,在这个示例中没有任何匹配,但更容易说明我期望的代码可能如何工作。

我如何获取100URI并在字符串的每个字符中“爬行”,而不是每个字符都有100-200个条目的100+数组?

EN

回答 1

Stack Overflow用户

发布于 2017-01-20 05:51:50

你可以使用的是某种函数,给定两个字符串,给出两对n长子字符串:

代码语言:javascript
复制
from collections import deque

def n_wise(s1, s2, length=4):
    i1=iter(s1)
    i2=iter(s2)
    x, y = deque(maxlen=length), deque(maxlen=length)
    for _ in range(length):
        x.append(next(i1))
        y.append(next(i2))
    yield ''.join(x), ''.join(y)
    for a, b in zip(i1, i2):
        x.append(a)
        y.append(b)
        yield ''.join(x), ''.join(y)

然后,您可以迭代进行比较,如下所示:

代码语言:javascript
复制
>>> for left, right in n_wise("abcdefghijk...", "0123456789..."):
        ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41752200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档