我試圖從一些數(shù)據(jù)中刪除以下模式,但得到的結(jié)果好壞參半。--endof["somerandomtext"]基本上,文本總是以 開頭--endof["和結(jié)尾,"]并且之間的單詞會發(fā)生變化。我正在使用的代碼行目前無法正常工作。d = re.sub('--+([a-zA-Z0-9_"-\[]*)+\]', " ", d)我是嘗試使用 re.sub 或任何方法解析數(shù)據(jù)的新手。我一直在猜測如何嘗試使這條線正常工作,我可能有一些錯誤導(dǎo)致了我的問題。任何幫助表示贊賞。
2 回答

牛魔王的故事
TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
要刪除以 開頭--endof["
和結(jié)尾的文本"]
,您應(yīng)該將它們匹配為精確字符,并匹配中間的子字符串。
因為[
和]
在正則表達(dá)式中具有特殊含義,所以您需要使用\
(如注釋中正確所述,]
不必在此處轉(zhuǎn)義,為了更加清晰而將其轉(zhuǎn)義)對它們進(jìn)行轉(zhuǎn)義。
在此示例中,中間的子字符串由一個或多個字母和數(shù)字組成(因此是+
)。它可以根據(jù)需要進(jìn)行更改。
str = re.sub('--endof\["[a-zA-Z0-9]+"\]', "", str)
為了進(jìn)一步打破這個問題 -
--endof
完全匹配這些字符。\[
匹配字符[
。"
匹配字符"
。[a-zA-Z0-9]+
匹配由一個或多個字母和數(shù)字組成的字符串(+
表示“一個或多個”)。"
再次匹配字符"
。\]
匹配字符]
(并且可以單獨指定]
)。

月關(guān)寶盒
TA貢獻(xiàn)1772條經(jīng)驗 獲得超5個贊
s = re.sub('--endof\[[^]]+]', '', s)
--endof[
這會刪除以 開頭、后跟任意數(shù)量的非]
s ( [^]]+
) 和 a 的字符串]
。適用于任何不包含右括號的文本。
添加回答
舉報
0/150
提交
取消