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

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

正則表達(dá)式搜索字符串中的多個(gè)標(biāo)記

正則表達(dá)式搜索字符串中的多個(gè)標(biāo)記

滄海一幻覺 2023-08-08 10:01:44
所以我應(yīng)該得到一個(gè)字符串并能夠按順序?qū)⑵浞殖稍S多標(biāo)記。所以如果我的字符串是 25 + 90 - x * z30 我的輸出應(yīng)該是 Line: 25 + 90 - x * z30數(shù)量:25標(biāo)點(diǎn)符號(hào):+數(shù)量:90標(biāo)點(diǎn)符號(hào):-標(biāo)識(shí)符:x標(biāo)點(diǎn)符號(hào):*識(shí)別:z30目前我的代碼還處于早期階段txt = '25 + 90 - x * z30'number = '[0-9]+'identifier = '[a-zA-z][a-zA-Z0-9]*'punctuation = '[(/*+)-]'        id = re.search(identifier, txt)        num = re.search(number, txt)        punc = re.search(punctuation, txt)        print('Line: ', txt)        print('Identifier: ', id)        print('Number: ', num)        print('punctuation', punc)我很困惑如何在第一次搜索后繼續(xù)閱讀字符串以獲得每個(gè)類別的下一次搜索以及如何讓它們按順序出現(xiàn)。我必須做一個(gè)特定的循環(huán)才能得到這樣的結(jié)果嗎?因?yàn)槟壳拔抑荒軐?duì)每個(gè)搜索進(jìn)行第一次搜索,并且按照其硬編碼的順序進(jìn)行搜索
查看完整描述

1 回答

?
慕姐8265434

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

一種方法是將字符串拆分為標(biāo)記(txt.split()可以),然后檢查每個(gè)標(biāo)記以查看它匹配的正則表達(dá)式。像這樣的東西(未經(jīng)測試)。


print("Line:", txt)

for token in txt.split():

    id = re.search(identifier, token)

    num = re.search(number, txt)

    punc = re.search(punctuation, txt)

    if id and id.group(0) == token:   # there was a match, and the match was the whole token

        print("Identifier:", token)

    elif num and num.group(0) == token:

        print("Number:", token)

    elif punc and punc.group(0) == token:

        print("Punctuation:", token)

    else:

        print("Unrecognized:", token)

有更好的方法可以做到這一點(diǎn)。例如,您可以將正則表達(dá)式放入字典中并對(duì)其進(jìn)行迭代,而不是編寫 s 鏈if。


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

添加回答

舉報(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)