第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python正則表達(dá)式分組查找器

Python正則表達(dá)式分組查找器

富國(guó)滬深 2023-10-26 17:00:00
輸入:146.204.224.152 - feest6811 [21/Jun/2019:15:45:24 -0700] "POST /incentivize HTTP/1.1" 302 4622預(yù)期輸出:example_dict = {"host":"146.204.224.152", "user_name":"feest6811","time":"21/Jun/2019:15:45:24 -0700","request":"POST /incentivize HTTP/1.1"}我的代碼適用于單獨(dú)分組,例如:for item in re.finditer('(?P<host>\d*\.\d*\.\d*.\d*)',logdata):        print(item.groupdict())Output: {'host': '146.204.224.152'}但我沒有通過組合每個(gè)組來獲得輸出。下面是我的代碼:for item in re.finditer('(?P<host>\d*\.\d*\.\d*.\d*)(?P<user_name>(?<=-\s)[\w]+\d)(?P<time>(?<=\[).+(?=]))(?P<request>(?<=").+(?="))',logdata):           print(item.groupdict())
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果您連續(xù)粘貼兩個(gè)正則表達(dá)式,它們將僅連續(xù)匹配文本。例如,如果組合a和b,則正則表達(dá)式ab將匹配文本ab,但不匹配acb。


您的組合正則表達(dá)式遇到了這個(gè)問題;您已將正則表達(dá)式融合在一起,這些正則表達(dá)式顯然可以單獨(dú)工作,但它們與直接相鄰的字符串不匹配,因此您必須添加一些填充來覆蓋輸入中的中間子字符串。


這是一個(gè)稍微重構(gòu)的版本,其中添加了填充,并且還進(jìn)行了一些常規(guī)修復(fù),以避免常見的正則表達(dá)式初學(xué)者錯(cuò)誤。


for item in re.finditer(r'''

        (?P<host>\d+\.\d+\.\d+.\d+)

        (?:[-\s]+)

        (?P<user_name>\w+\d)

        (?:[^[]+\[)

        (?P<time>[^]]+)

        (?:\][^]"]+")

        (?P<request>[^"]+)''',

        logdata, re.VERBOSE):

    print(item.groupdict())

演示: https: //ideone.com/BsNLG7


查看完整回答
反對(duì) 回復(fù) 2023-10-26
?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

我可能會(huì)簡(jiǎn)化您的正則表達(dá)式模式并僅re.findall在此處使用:


inp = '146.204.224.152 - feest6811 [21/Jun/2019:15:45:24 -0700] "POST /incentivize HTTP/1.1" 302 4622'

matches = re.findall(r'(\d+\.\d+\.\d+\.\d+) - (\S+) \[(.*?)\] "(.*?)"', inp)

print(matches)

這將生成一個(gè)元組列表,其中包含您想要的四個(gè)捕獲術(shù)語:


[('146.204.224.152', 'feest6811', '21/Jun/2019:15:45:24 -0700', 'POST /incentivize HTTP/1.1')]



查看完整回答
反對(duì) 回復(fù) 2023-10-26
  • 2 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)