【问题标题】:Remove Sub String by using Python使用 Python 删除子字符串
【发布时间】:2012-01-31 22:43:15
【问题描述】:

我已经从论坛中提取了一些信息。这是我现在拥有的原始字符串:

string = 'i think mabe 124 + <font color="black"><font face="Times New Roman">but I don\'t have a big experience it just how I see it in my eyes <font color="green"><font face="Arial">fun stuff'

我不喜欢的是子字符串"&lt;font color="black"&gt;&lt;font face="Times New Roman"&gt;" 和"&lt;font color="green"&gt;&lt;font face="Arial"&gt;"。我确实想保留字符串的其他部分,除了这个。所以结果应该是这样的

resultString = "i think mabe 124 + but I don't have a big experience it just how I see it in my eyes fun stuff"

我怎么能这样做?实际上我用漂亮的汤从论坛中提取了上面的字符串。现在我可能更喜欢正则表达式来删除该部分。

【问题讨论】:

  • 这个字符串目前不工作,里面有"和'
  • @ThiefMaster 感谢您的支持。我怎么能删除它?这肯定是一种耻辱
  • @julio.alegria 如果您想进行一些测试,请将开头“ 和结尾” 之间的内容视为字符串。非常感谢
  • 我不明白,你用beautifulsoup提取文本,但你想在完成之前停止使用它,因为......?

标签: python regex string


【解决方案1】:
import re
re.sub('<.*?>', '', string)
"i think mabe 124 + but I don't have a big experience it just how I see it in my eyes fun stuff"

re.sub 函数采用正则表达式并将字符串中的所有匹配项替换为第二个参数。在这种情况下,我们正在搜索所有标签 ('&lt;.*?&gt;') 并将它们替换为空 ('')。

? 在re 中用于非贪婪搜索。

更多关于re module。

【讨论】:

  • 这很有帮助..谢谢。我用它来删除我项目的 twitter 推文中的提及 (@s) - re.sub('@.*? ', '', tweetText)
  • 我需要从mens tommy hilfiger knot boatshoe midnight uk size 6.5 中删除像size 6.5 这样的模式。如果我使用re.sub('size.*?[0-9]+', '', shoe),我会得到mens tommy hilfiger knot boatshoe midnight uk .5
【解决方案2】:
>>> import re
>>> st = " i think mabe 124 + <font color=\"black\"><font face=\"Times New Roman\">but I don't have a big experience it just how I see it in my eyes <font color=\"green\"><font face=\"Arial\">fun stuff"
>>> re.sub("<.*?>","",st)
" i think mabe 124 + but I don't have a big experience it just how I see it in my eyes fun stuff"
>>> 

【讨论】:

    【解决方案3】:
    BeautifulSoup(text, features="html.parser").text 
    

    对于那些在我的回答中寻求深入信息的人,对不起。

    我会解释的。

    Beautifulsoup 是一个广泛使用的 python 包,可以帮助用户(开发者)在 python 中与 HTML 进行交互。

    上面就像只是把所有的 HTML 文本 (text) 转换成 Beautifulsoup 对象 - 这意味着它会解析所有内容(给定文本中的每个 HTML 标记)

    完成后,我们只需从 HTML 对象中请求所有文本。

    【讨论】:

    • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常质量更高,更有可能吸引投票。
    • 嘿抱歉,有时我觉得这个问题很简单,真正的答案是实际的实现。
    猜你喜欢
    • 2011-12-25
    • 2016-04-18
    • 2020-10-12
    • 1970-01-01
    • 2022-08-19
    • 2012-04-09
    • 2015-08-07
    相关资源
    最近更新 更多