当有一些字符串Python时删除div

您好,当刺痛包含以下内容时,我需要删除一个 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>



红颜莎娜
浏览 183回答 1
1回答

潇潇雨雨

您可以为此使用正则表达式。此外,您可能会发现一个在线界面很有帮助,例如这个界面,因为正则表达式可能变化无常,并且在语言/库之间的操作方式不同,并且具有标志(不区分大小写、支持 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 reregex = 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被删除,它将无法正常工作。由于太复杂,无法在正则表达式中修复,并且需要使用解析器,因为它需要堆。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python