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

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

執(zhí)行正則表達(dá)式查找全部的更好方法

執(zhí)行正則表達(dá)式查找全部的更好方法

偶然的你 2022-11-29 15:20:42
我正在嘗試使用正則表達(dá)式從字符串中提取一些文本。給定一個(gè)字符串,我希望提取“標(biāo)簽”。標(biāo)簽可以通過(guò)兩種方式定義:1) 一個(gè)@符號(hào) eg后面的單個(gè)單詞@tag應(yīng)該返回tag2)@"和"eg之間的多個(gè)單詞@"multiple words tag"應(yīng)該返回multiple words tag。對(duì)于 (1),我有模式\B@\w+,對(duì)于 (2),我有模式@"(.*?)"。我有幾個(gè)問(wèn)題: a) 模式 1 返回帶有still 前綴的標(biāo)簽。@如何更改模式以?xún)H返回不帶的單詞@?b) 如何將這些模式組合成一個(gè)可用于以下用途的模式:re.findall(pattern, string)先感謝您。
查看完整描述

2 回答

?
慕沐林林

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

條件正則表達(dá)式的一個(gè)很好的用例:

@(")?((?(1)[^"]+|\w+))

請(qǐng)參閱regex101.com 上的演示。


import re


text = """

lorem ipsum @"multiple words tag"

lorem ipsum @tag 

"""


tags = [m.group(2) for m in re.finditer(r'@(")?((?(1)[^"]+|\w+))', text)]

print(tags)

# ['multiple words tag', 'tag']

為了替換匹配項(xiàng)并獲取標(biāo)簽,請(qǐng)使用以下代碼:

import re


text = """

lorem ipsum @"multiple words tag"

lorem ipsum @tag 

"""

tags = []

def replacer(match):

    tags.append(match.group(2))

    return ""


text = re.sub(r'@(")?((?(1)[^"]+|\w+))(?(1)")', replacer, text)

print(text)

print(tags)


查看完整回答
反對(duì) 回復(fù) 2022-11-29
?
拉莫斯之舞

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

關(guān)于 a)/b):

我會(huì)為 python 3.7-3.8 建議以下正則表達(dá)式:

@(?:"((?:\w+\s{1}){0,}\w+)"){0,1}(?:(\w+){0,1})


查看完整回答
反對(duì) 回復(fù) 2022-11-29
  • 2 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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