gpt4 book ai didi

python - 使用正则表达式从Python字符串中提取模式

转载 作者:行者123 更新时间:2023-11-30 22:20:32 26 4
gpt4 key购买 nike

我有一个来自日志文件之一的字符串,如下所示。

pf_string = "2018-02-01 00:54:49,285 [210.67.123.00]  [ABC,CDE,sfv4_ABC.,dbPool5,11689563,fp2871,en_US]  UNKNOWN-UNKNOWN EVENT-UNKNOWN-UNKNOWN-pc4bcf46t-20180201005446-663570 2994 770 3199 168 26 [Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; ABC-IE11; rv:11.0) like Gecko]     3677610951-0 PERFORMANCE PM_REVIEW FORM_DETAIL [[95211KB 480ms 460ms 20ms 212KB 0KB 118KB 57KB 0 0 ]] 74 139 - - - -   "

现在我想提取如下所示的模式:

Module_id -> PERFORMANCE 
Page Name -> PM_REVIEW
Page Qualifier -> FORM_DETAIL

这是一个正则表达式,如下所示:

perfLogPatternPage = re.compile('(?P<module_id>\w+)\s(?P<page_name>\w+)\s(?P<page_qualifier>\w+)\s\[\[')


print perfLogPatternPage.match(pf_string).group('module_id')
print perfLogPatternPage.match(pf_string).group('page_name')
print perfLogPatternPage.match(pf_string).group('page_qualifier')

但这似乎不起作用并给出正确的结果。

有人可以提出问题所在吗?

最佳答案

一次应用 re.search() 函数就足够了:

import re

pf_string = "2018-02-01 00:54:49,285 [210.67.123.00] [ABC,CDE,sfv4_ABC.,dbPool5,11689563,fp2871,en_US] UNKNOWN-UNKNOWN EVENT-UNKNOWN-UNKNOWN-pc4bcf46t-20180201005446-663570 2994 770 3199 168 26 [Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; ABC-IE11; rv:11.0) like Gecko] 3677610951-0 PERFORMANCE PM_REVIEW FORM_DETAIL [[95211KB 480ms 460ms 20ms 212KB 0KB 118KB 57KB 0 0 ]] 74 139 - - - - "

m = re.search(r'(?P<module_id>\w+)\s+(?P<page_name>\w+)\s+(?P<page_qualifier>\w+)\s(?=\[\[.)', pf_string)
module_id, page_name, page_qualifier = m.groups()

关于python - 使用正则表达式从Python字符串中提取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48832018/

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