python - 嵌套循环使用正则表达式 python
问题描述
我想问一下。
- url = [domaina.com/def, domainb.com/abc, domainc.com/]
- 有效载荷 = [abc, def, ghi]
如果匹配,如何使用正则表达式一起调用 url 和有效负载,例如:
- domaina.com/abc
- domaina.com/def
然后
domainb.com/abc
domainb.com/def
import re import csv import collections def log_file_reader(filename): f = open(filename, "r") #log = f.read() #payload = a.read() for url in f: a = open("xss.txt", encoding='utf-8') for payload in a: #regex = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' ip_list = re.findall(payload, url) return ip_list #print(payload, url) if __name__ == "__main__": log_file_reader('url')
解决方案
请您尝试以下方法:
def log_file_reader(filename):
# assuming files are already opened as f and a
l = []
for url in f:
for payload in a:
if re.search('/' + payload + '$', url):
l.append(url)
return l
使用提供的示例,它将返回:
['domaina.com/def', 'domainb.com/abc']
我已经预先/
并附$
加到字符串payload
以避免可能的部分匹配(例如ab
或ef
在有效负载列表中给出)。
推荐阅读
- node.js - 意外的令牌导出:控制器
- debian - 如何在 Windows 10 上配置 Docker Desktop 以控制 Debian 计算机上的另一个 docker 安装
- apache - Apache 代理说来自 SNI 的主机名与来自 HTTP 的主机名不匹配
- reactjs - React JS - 如何在 enter 或 keydown 上提交表单
- c - 如何解决分段故障?
- c# - 按钮参数绑定
- python - 根据预测结果的准确性和虚假性将预测结果保存为 1 或 0
- c# - 如何在内容按钮中显示 Canvas.Left I Canvas.Top 属性?
- next.js - 在 Firebase 上托管 NextJS:如何在自定义 404 页面上响应状态 404
- powershell - 将文件移动到匹配的目录