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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

表達(dá)式中的正則表達(dá)式“AND”提取這個和那個

表達(dá)式中的正則表達(dá)式“AND”提取這個和那個

慕后森 2023-10-18 21:32:31
我正在努力編寫一個正則表達(dá)式來提取下面以粗體顯示的數(shù)字。我為每個值設(shè)置了 3 個不同的正則表達(dá)式,但由于最后一個值之間可能有空格,我不知道如何在此處容納“AND”。輪胎 = '輪胎:P 275 / 65 R 18 A/S;275 / 65 R 18自動變速箱 貓頭鷹;265 / 70 R 17 A/T 貓頭鷹;'我已經(jīng)嘗試過了,它適用于前兩個,但不適用于最后一個。我想在單個正則表達(dá)式中包含最后一個。p1 = re.compile(r'(\d+)/')p2 = re.compile(r'/(\d+)')p3 = re.compile(r'(?=.*[R](\d+))(?=.*[R]\s(\d+))')我嘗試過不同的東西,這是我嘗試的最后一個代碼,但結(jié)果不成功如果我這樣做p1.findall(tire), p2.findall(tire), p3.findall(tire)我想看到這個:(['275', '275', '265'], ['65', '65', '70'], ['18', '18', '17'])
查看完整描述

1 回答

?
尚方寶劍之說

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

你就快到了!您不需要三個單獨(dú)的正則表達(dá)式。相反,請?jiān)趩蝹€正則表達(dá)式中使用多個捕獲組。

(\d{3})\/(\d{2})R\s?(\d{2})

嘗試一下: https: //regex101.com/r/Xn6bry/1

解釋:

  • (\d{3}):捕獲三位數(shù)字

  • \/: 匹配正斜杠

  • (\d{2}):捕獲兩位數(shù)

  • R\s?:匹配R后跟一個可選的空格

  • (\d{2}):捕獲兩位數(shù)。

在 Python 中,執(zhí)行以下操作:

p1 = re.compile(r'(\d{3})\/(\d{2})R\s?(\d{2})')

tire = 'Tire: P275/65R18 A/S; 275/65R 18 A/T OWL;265/70R 17 A/T OWL;'

matches = re.findall(p1, tire)

現(xiàn)在如果你看一下matches,你會得到 [('275', '65', '18'), ('275', '65', '18'), ('265', '70', '17')]


將其重新排列為您想要的格式應(yīng)該非常簡單:


# Make an empty list-of-list with three entries - one per group

groups = [[], [], []]

for match in matches:

    for groupnum, item in enumerate(match):

        groups[groupnum].append(item)

現(xiàn)在groups是[['275', '275', '265'], ['65', '65', '70'], ['18', '18', '17']]


查看完整回答
反對 回復(fù) 2023-10-18
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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