gpt4 book ai didi

python - 使用正则表达式获取数据

转载 作者:行者123 更新时间:2023-12-04 15:18:53 27 4
gpt4 key购买 nike

我正在尝试使用正则表达式获取数据

logdata='146.204.224.152 - feest6811 [21/Jun/2019:15:45:24 -0700] "POST /incentivize HTTP/1.1" 302 4622\n197.109.77.178 - kertzmann3129 [21/Jun/2019:15:45:25 -0700] "DELETE /virtual/solutions/target/web+services HTTP/2.0" 203 26554'
pattern="""(?P<host>.*)( - \ )(?P<user_name>\w*)"""
for item in re.finditer(pattern,logdata,re.VERBOSE):
print(item.groupdict())

输出看起来像

{'host': '146.204.224.152 ', 'user_name': 'feest6811'}
{'host': '197.109.77.178 ', 'user_name': 'kertzmann3129'}

但是我想要

{'host': '146.204.224.152', 'user_name': 'feest6811', 'time': '21/Jun/2019:15:45:24 -0700', 'request': 'POST /incentivize HTTP/1.1'}
{'host': '197.109.77.178', 'user_name': 'kertzmann3129', 'time': '21/Jun/2019:15:45:25 -0700', 'request': 'DELETE /virtual/solutions/target/web+services HTTP/2.0'}

最佳答案

你可以使用

r'(?P<host>[\d.]+)\ -\ (?P<user_name>\w+)\ \[(?P<time>[^][]+)]\ "(?P<request>[^"]+)"'

参见 regex demo

详情

  • (?P<host>[\d.]+) - 组“主机”:一位或多位数字/点
  • \ -\ - 一个字符串
  • (?P<user_name>\w+) - 组“user_name”:一个或多个字符
  • \ \[ - 空格 + [
  • (?P<time>[^][]+) - 组“时间”:除] 以外的一个或多个字符和 [
  • ]\ " - ] "子串
  • (?P<request>[^"]+) - 组“请求”:除" 以外的一个或多个字符
  • " - 一个 "字符。

关于python - 使用正则表达式获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63794361/

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