【发布时间】:2021-05-13 06:34:22
【问题描述】:
早上好,我需要把几个正则表达式编译成一个模式 正则表达式是这样的:
reg_ip = r'(?P<IP>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'
reg_meth = r'(?P<METHOD>GET|POST|PUT|DELETE|HEAD)'
reg_status = r'\s(?P<STATUS>20[0-9]|30[0-9]|40[0-9]|50[0-9])\s'
reg_400 = r'\s(?P<STATUS_400>40[0-9])\s'
reg_500 = r'\s(?P<STATUS_500>50[0-9])\s'
reg_url = r'"(?P<URL>htt[p|ps]:.*?)"'
reg_rt = r'\s(?P<REQ_TIME>\d{4})$'
为 apache access.log 中的字符串编写正则表达式:
109.169.248.247 - - [12/Dec/2015:18:25:11 +0100] "POST /administrator/index.php HTTP/1.1" 200 4494 "http://almhuette-raith.at/administrator/ " "Mozilla/5.0 (Windows NT 6.0; rv:34.0) Gecko/20100101 Firefox/34.0" 4374
试图用这样的代码编译它:
some_pattern = re.compile(reg_ip.join(reg_meth).join(reg_status))
显然它不是那样工作的。怎么做才对?
【问题讨论】:
-
这个
htt[p|ps]没有按您的预期工作。见regex101.com/r/Sk4m6t/1
标签: python-3.x regex