我試圖從一些數據中刪除以下模式,但得到的結果好壞參半。--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
提交
取消