gpt4 book ai didi

python - 正则表达式捕捉网址

转载 作者:可可西里 更新时间:2023-11-01 17:04:50 25 4
gpt4 key购买 nike

我有一个 url:http://200.73.81.212/.CREDIT-UNION/update.php 我自己发现和开发的 reg 表达式都不起作用。我正在研究网络钓鱼邮件数据集,其中有很多奇怪的超链接。这是我的一个:
https?:\/\/([a-zA-z0-9]+.)+)|(www.[a-zA-Z0-9]+.([a-zA-Z0-9] +\.[a-zA-Z0-9]+)+)(((/[\.A-Za-z0-9]+))+/?.
当然没有成功。我在 Python 工作。
编辑:
我需要一个正则表达式来捕获这种 url 以及任何普通的超链接,例如:
https://cnn.com/
www.foxnews.com/story/122345678
有什么想法吗?

最佳答案

像这样的事情呢?

import re

phish = re.compile('''(?P<http>http\://)
(?P<ipaddress>(([0-9]*(\.)?)[0-9]*)*)/\.
(?P<name>(\.)?([A-Za-z]*)(\-)?([A-Za-z]*))/
(?P<ending>(update\.php))''', re.VERBOSE)

example_string = 'http://200.73.81.212/.CREDIT-UNION/update.php'

found_matches = []
# check that matches actually exist in input string
if phish.search(example_string):
# in case there are many matches, iterate over them
for mtch in phish.finditer(example_string):
# and append matches to master list
found_matches.append(mtch.group(0))

print(found_matches)
# ['http://200.73.81.212/.CREDIT-UNION/update.php']

这是足够灵活的,所以现在如果你有替代的结尾而不是 update.php,你可以简单地将它们包含在命名的捕获组中,通过用 | 分隔所有替代的结尾匹配,即

(update\.php|remove\.php, ...)

此外,您的名为捕获组的 ip 地址可以取任意数字 123.23.123.12,它不必是固定数量的重复数字后跟句点模式。现在我相信 IP 地址最多可以包含 3 个数字,因此您可以将它们固定下来以确保您使用大括号匹配正确类型的数字:

[0-9]{2, 3}\. # minimum of 2 numbers, maximum of 3

关于python - 正则表达式捕捉网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51919931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com