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

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

正則表達(dá)式用原始字符替換“轉(zhuǎn)義的”字符

正則表達(dá)式用原始字符替換“轉(zhuǎn)義的”字符

我不使用正則表達(dá)式解析大量的html或通用html。我知道那很不好TL; DR:我有像A sentence with an exclamation\! Next is a \* character原始標(biāo)記中有“轉(zhuǎn)義”字符的位置。我希望用他們的“原著”代替它們。并獲得:A sentence with an exclamation! Next is a * character我需要從一些Wiki標(biāo)記中提取少量數(shù)據(jù)。我在這里只處理段落/摘要,因此不需要強(qiáng)大的強(qiáng)大解決方案。在python中,我嘗試了一個(gè)測試:s = "test \\* \\! test * !! **"r = re.compile("""\\.""") # Slash followed by anythingr.sub("-", s)應(yīng)該這樣:test - - test * !! **但是它什么也沒做。我在這里想念什么嗎?此外,我不確定如何用其原始字符替換任何給定的轉(zhuǎn)義字符,因此我可能只用特定的正則表達(dá)式列出和子目錄,例如:\\\*和\\!可能有一種更清潔的方法來執(zhí)行此操作,因此非常感謝您的幫助。
查看完整描述

1 回答

?
月關(guān)寶盒

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

您缺少某些內(nèi)容,即r前綴:


r = re.compile(r"\\.") # Slash followed by anything

python和re將含義附加到\; 當(dāng)您將字符串值傳遞給時(shí)re.compile(),您加倍的反斜杠將變成一個(gè)反斜杠,此時(shí)re將看到\.,表示字面句號。


>>> print """\\."""

\.

通過使用r''您告訴python不要解釋轉(zhuǎn)義碼,因此現(xiàn)在re給了一個(gè)帶的字符串\\.,表示文字反斜杠后跟任何字符:


>>> print r"""\\."""

\\.

演示:


>>> import re

>>> s = "test \\* \\! test * !! **"

>>> r = re.compile(r"\\.") # Slash followed by anything

>>> r.sub("-", s)

'test - - test * !! **'

經(jīng)驗(yàn)法則是:在定義正則表達(dá)式時(shí),請使用r''原始字符串文字,從而使您不必對所有對Python和正則表達(dá)式語法均有意義的內(nèi)容進(jìn)行兩次轉(zhuǎn)義。


接下來,您要替換“轉(zhuǎn)義”字符;為此,請使用組,re.sub()讓您引用組作為替換值:


r = re.compile(r"\\(.)") # Note the parethesis, that's a capturing group

r.sub(r'\1', s)          # \1 means: replace with value of first capturing group

現(xiàn)在的輸出是:


>>> r = re.compile(r"\\(.)") # Note the parethesis, that's a capturing group

>>> r.sub(r'\1', s) 

'test * ! test * !! **'


查看完整回答
反對 回復(fù) 2021-03-29
  • 1 回答
  • 0 關(guān)注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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