我試圖從一些數據中刪除以下模式,但得到的結果好壞參半。--endof["somerandomtext"]基本上,文本總是以 開頭--endof["和結尾,"]并且之間的單詞會發生變化。我正在使用的代碼行目前無法正常工作。d = re.sub('--+([a-zA-Z0-9_"-\[]*)+\]', " ", d)我是嘗試使用 re.sub 或任何方法解析數據的新手。我一直在猜測如何嘗試使這條線正常工作,我可能有一些錯誤導致了我的問題。任何幫助表示贊賞。
2 回答
牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
要刪除以 開頭--endof["和結尾的文本"],您應該將它們匹配為精確字符,并匹配中間的子字符串。
因為[和]在正則表達式中具有特殊含義,所以您需要使用\(如注釋中正確所述,]不必在此處轉義,為了更加清晰而將其轉義)對它們進行轉義。
在此示例中,中間的子字符串由一個或多個字母和數字組成(因此是+)。它可以根據需要進行更改。
str = re.sub('--endof\["[a-zA-Z0-9]+"\]', "", str)為了進一步打破這個問題 -
--endof完全匹配這些字符。\[匹配字符[。"匹配字符"。[a-zA-Z0-9]+匹配由一個或多個字母和數字組成的字符串(+表示“一個或多個”)。"再次匹配字符"。\]匹配字符](并且可以單獨指定])。
月關寶盒
TA貢獻1772條經驗 獲得超5個贊
s = re.sub('--endof\[[^]]+]', '', s)--endof[這會刪除以 開頭、后跟任意數量的非]s ( [^]]+) 和 a 的字符串]。適用于任何不包含右括號的文本。
添加回答
舉報
0/150
提交
取消
