亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

當有一些字符串Python時刪除div

當有一些字符串Python時刪除div

紅顏莎娜 2022-07-19 17:01:43
您好,當刺痛包含以下內容時,我需要刪除一個 div:<!--googleoff: index-->所以我有代碼:<span>TEXT</span><div><!--googleoff: index--> some other text</div><p>Some string</p>我需要輸出看起來像這樣<span>TEXT</span><p>Some string</p>我試圖找到它如何在 b4s 中執行此操作,但找不到解決方案。編輯完整字符串:<div style="font-size: 18px"><p><span style="font-size:18px;"><strong>Drivstofftankmonteringsdeler - Toyota Rav 4 2000-2006</strong></span></p></div><div style="font-size: 18px"> </div><div style="font-size: 18px"><!--googleoff: index-->En drivstofftank er en viktig del av bilen. Hvilken som helst motor er avhengig av drivstoffsystem med korrekt funksjon og bare den beste kvaliteten garanterer sikker kj?ring. Det er derfor ikke verdt ? pr?ve ? spare p? drivstofftanken eller drivstoffsystemet. Velg NOMAX.NO for ? v?re sikker p? at du f?r best mulig kvalitet.<br /><br />Lurer du p? om den valgte drivstofftanken er riktig for bilen din? Ta kontakt med oss p? telefon eller send en e-post. V?re eksperter svarer gjerne p? alle dine sp?rsm?l og vil gjerne hjelpe deg med ? velge de riktige delene som passer til bilen din.<br /> </div><p><span style="font-size:18px;">- 2stk</span></p><p><span style="font-size:18px;">- h?y kvalitet</span></p><p><span style="font-size:18px;">- bredde 12mm</span></p>
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

您可以為此使用正則表達式。此外,您可能會發現一個在線界面很有幫助,例如這個界面,因為正則表達式可能變化無常,并且在語言/庫之間的操作方式不同,并且具有標志(不區分大小寫、支持 unicode 等)。


我為您的問題提出的問題如下:


<div><!--googleoff: index-->.*?</div>

胡說八道.*?是什么意思?


.表示“匹配任何字符”

*意思是'匹配前面的東西任意次數[包括零]'

“?” 意思是“使前一個匹配器不貪婪”

我不是正則表達式(正則表達式的常用縮寫)上帝,但后者是 python 特定的或至少不是通用的。一些正則表達式引擎可能不支持它們或使用不同的指定方式。那么它們在一起是什么意思呢?


.*表示“匹配任何字符任意多次”(基本上,任何事情都會發生)

.*?意思是'匹配任何字符任意次數,但更喜歡更短'

默認情況下,正則表達式匹配在大多數引擎中都是貪婪的。為什么我們想要不貪婪?如果你有重復,想象我們有輸入:


<span>TEXT</span><div><!--googleoff: index--> some other text</div><p>Some string</p><div><!--googleoff: index--> some more text</div>

貪婪方法(沒有?)會導致以下錯誤輸出:


<span>TEXT</span>

代替


<span>TEXT</span><p>Some string</p>

那么,如何在 Python 中執行此操作?像這樣:


import re

regex = r"<div><!--googleoff: index-->.*?</div>"

input = "<span>TEXT</span><div><!--googleoff: index--> some other text</div><p>Some string</p>"

output = re.sub(regex, "", input)

print(output)

將其用作正則表達式的前綴是一種很好的做法,r因為它可以簡化轉義,盡管我認為在這種情況下它沒有任何區別,但我不想冒險。


請注意,在這個答案中,我忽略了這是某種 HTML/XML/結構化文本,并且有一些方法可以實際解析它并允許您遍歷元素樹等等。這也可以是一個很好的方法,但是對于一個腳本來說可能是矯枉過正并且會產生意想不到的后果(它是否往返于同一個源欄刪除它div?我不會為此而投入火中)。然而,這也意味著存在一些限制(例如,如果div標簽內有另一個標簽div被刪除,它將無法正常工作。由于太復雜,無法在正則表達式中修復,并且需要使用解析器,因為它需要堆。


查看完整回答
反對 回復 2022-07-19
  • 1 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號