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

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

熊貓正則表達(dá)式模式需要一些清潔

熊貓正則表達(dá)式模式需要一些清潔

弒天下 2023-08-22 15:24:28
我有一個(gè)輸入文本:text = '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\n156.127.178.177 - [21/Jun/2019:15:45:27 -0700] "DELETE /interactive/transparent/niches/revolutionize HTTP/1.1output Required :['feest6811','kertzmann3129','-']output getting :[ ' feest6811', ' kertzmann3129',' ']下面是使用的代碼user_name = re.findall('(?<=[-])\s[a-zA-Z0-9]*',text)第二個(gè)輸出所需:['POST /incentivize HTTP/1.1','DELETE /virtual/solutions/target/web+services HTTP/2.0','DELETE /interactive/transparent/niches/revolutionize HTTP/1.1']Output getting :['POST /incentivize HTTP/1.','DELETE /virtual/solutions/target/web+services HTTP/2.','DELETE /interactive/transparent/niches/revolutionize HTTP/1.']以下是用于上述第二個(gè)輸出的代碼request =  re.findall('[a-zA-Z]*\s/[a-zA-Z].*[.\+]',text)正如你所看到的,我在輸出 1 和 2 中都遺漏了一些小東西在輸出 1 中,當(dāng)我們沒有數(shù)據(jù)時(shí),我缺少“-”符號(hào),而在第二個(gè)輸出中,我無法讀取“.”之后的最后一個(gè)單詞。任何人都可以建議對(duì)代碼進(jìn)行必要的更改嗎?
查看完整描述

3 回答

?
侃侃無極

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

-對(duì)于第一個(gè)模式,如果右側(cè)是空格,則可以使用交替來匹配,并[使用正向前視。

(?<=-\s)[a-zA-Z0-9]+|-(?=?\[)

正則表達(dá)式演示


對(duì)于第二種模式,您可以使匹配更加具體,并根據(jù)需要進(jìn)行擴(kuò)展。

(?:POST|DELETE)?\S+?HTTP/(?:1\.[01]|2.0)

正則表達(dá)式演示

或者使用 re.findall 返回的捕獲組進(jìn)行更廣泛的匹配,并匹配大寫字符,后跟/左雙引號(hào)后的字符 a-zA-Z。

不確定最后一個(gè)"是否丟失,但在這種情況下,您可以匹配它或斷言字符串的結(jié)尾。

"([A-Z]+\s/[a-zA-Z][^"]+)(?:"|$)

正則表達(dá)式演示

查看完整回答
反對(duì) 回復(fù) 2023-08-22
?
慕容3067478

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

首先,您需要稍微調(diào)整。你需要但是\s與lookbehind

user_name = re.findall('(?<=[-]\s)[a-zA-Z0-9]*', text)
print(user_name)

但這會(huì)產(chǎn)生:

['feest6811', 'kertzmann3129', '']

您無法將“-”作為返回列表的第三個(gè)值,因?yàn)楹笠晱膩聿皇瞧ヅ涞囊徊糠?。您想要在最終匹配中輸入的第三個(gè)- 輸入字符串findall位于以下上下文中:

156.127.178.177 - [21/Jun/2019:15:45:27 -0700]

在本例中返回 '' 的正則表達(dá)式同樣可以很好地指示輸入字符串中是否存在 '-' 以及相應(yīng)的空子[a-zA-Z0-9]*表達(dá)式匹配項(xiàng)。如果這確實(shí)困擾您,您可以隨時(shí)這樣做:

user_name = re.findall('(?<=[-]\s)[a-zA-Z0-9]*', text)
user_name = ['-' if x == '' else x for x in user_name] # convert '' to '-'
print(user_name)

印刷:

['feest6811', 'kertzmann3129', '-']

對(duì)于第二個(gè)使用:

request =  re.findall(r'[a-zA-Z]*\s/[a-zA-Z].*?/\d\.\d', text)


查看完整回答
反對(duì) 回復(fù) 2023-08-22
?
一只甜甜圈

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

我喜歡使用 Regex101.com 來構(gòu)建這樣的正則表達(dá)式。

請(qǐng)嘗試以下操作

1.這是更正后的版本:https ://regex101.com/r/bFDnSm/2

請(qǐng)注意正則表達(dá)式更改為

(?<=[-]\s)[a-zA-Z0-9]*

  1. 這是更正后的版本: https ://regex101.com/r/4uLVUb/1

請(qǐng)注意正則表達(dá)式更改為:

[a-zA-Z]*\s/[a-zA-Z+/]+\s[AZ]+/[0-9.]+

您應(yīng)該發(fā)現(xiàn)它非常廣泛,甚至可以使用更多示例。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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