【问题标题】:What is the best practice to remove my own tag's contents?删除我自己的标签内容的最佳做法是什么?
【发布时间】:2015-05-28 18:42:41
【问题描述】:

我使用 Python 2.7 和 Django 1.6。

我使用 unicode。

我想删除我自己标签的内容。 我自己的标签名称是<nospeak>

例如,如果输入下面的信息,

输入:

foofoo<nospeak>barbar</nospeak>hogehoge

我希望的结果在那里。

输出:

foofoohogehoge

*&lt;nospeak&gt;barbar&lt;/nospeak&gt; 被移除

重要的是还包括unicode。

我创建了我的方法。它运行良好。 但是,我在 Django 中使用了它。它运行不正常。

你能告诉我删除我自己的标签内容的好习惯吗?

F.I.Y 我创建的方法。

# -*- coding: utf-8 -*-
import re

def __make_speakable_text(text):
    pattern = r"(<nospeak>.*?</nospeak>)"
    matches = re.findall(pattern, text)

    speakable_text = text

    if len(matches) == 0:
        print 'Not match'
    else:
        for match in matches:
            # print match
            speakable_text = speakable_text.replace(match, '')

    return speakable_text

【问题讨论】:

  • re.sub(r'&lt;nospeak&gt;.*?&lt;/nospeak&gt;', '', text) 有什么问题?

标签: python regex django string unicode


【解决方案1】:

试试re.sub(ur'&lt;nospeak&gt;.*?&lt;/nospeak&gt;', '', text)

要了解更多关于正则表达式模式之前的ur,您可以查看What exactly do "u" and "r" string flags do in Python, and what are raw string literals? 帖子。

【讨论】:

  • stribizhev 感谢您的回复。但是,如果我使用你的命令。内容不会被删除。只删除标签..
  • @shinriyo:请查看更新后的答案。
  • 谢谢。但是,我不使用包含的文本所以,我最终合并了你的答案和 Avinash Raj 的答案re.sub(ur'&lt;nospeak&gt;.*?&lt;/nospeak&gt;', '', text)
  • @shinriyo:请查看我添加到帖子中的链接。我希望这已经足够了。
  • 您的旧答案也对我有所帮助。但是,我无法解决如何使用 '\g' stackoverflow.com/questions/29270437/…
猜你喜欢
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-26
  • 1970-01-01
相关资源
最近更新 更多