如何用python和智能方式覆盖<strong> <em> <u>到<strong>的所有情况?

Posted

技术标签:

【中文标题】如何用python和智能方式覆盖<strong> <em> <u>到<strong>的所有情况?【英文标题】:How to cover all case of <strong> <em> <u> to <strong> with python and smart way? 【发布时间】:2021-12-29 12:03:43 【问题描述】:

如何用python和智能方式覆盖&lt;strong&gt; &lt;em&gt; &lt;u&gt;&lt;strong&gt;的所有情况?

我试图用代码来覆盖它,但我认为我的方法不好并且有很多案例。

有没有人想知道如何更好地做到这一点?

我非常希望有两种方法来学习:

方式 1:不使用正则表达式。 方式 2:使用正则表达式。

我现在的代码:

html = '''
<h1>Make bakery</h1>
<p>Step 1: Please use good quality product for make <strong><em>bakery</em></strong></p>
<p>Step 2: Make <em><u>bakery</u></em> hot</p>
<p>Step 2: Make <em><strong><u>bakery</u></strong></em> hot</p>
'''

def function_cover_all_strong(html):

    html = html.replace('<u><em><strong>','<strong>')
    html = html.replace('</strong></em></u>','</strong>')

    html = html.replace('<em><strong><u>','<strong>')
    html = html.replace('</u></strong></em>','</strong>')

    html = html.replace('<strong><u><em>','<strong>')
    html = html.replace('</em></u></strong>','</strong>')

    html = html.replace('<strong><em><u>','<strong>')
    html = html.replace('</u></em></strong>','</strong>')

    html = html.replace('<em><u>','<strong>')
    html = html.replace('</u></em>','</strong>')

    html = html.replace('<u><strong>','<strong>')
    html = html.replace('</strong></u>','</strong>')

    html = html.replace('<u><em>','<strong>')
    html = html.replace('</em></u>','</strong>')

    html = html.replace('<strong><u>','<strong>')
    html = html.replace('</u></strong>','</strong>')

    html = html.replace('<strong><em>','<strong>')
    html = html.replace('</em></strong>','</strong>')

    html = html.replace('<u>','<strong>')
    html = html.replace('</u>','</strong>')

    html = html.replace('<em>','<strong>')
    html = html.replace('</em>','</strong>')

    return html

html_cover = function_cover_all_strong(html = html)
print(html_cover)

感谢您的支持!祝你一切顺利。我非常努力研究更多但没有看到这样的案例!

【问题讨论】:

必填***.com/a/1732454/14637 非常感谢@Thomas 我会读到的 【参考方案1】:

使用简单列表和 for 循环怎么样?

def function_cover_all_strong(html):

    #convert <strong class"some-thing" id="something"> to <strong>
    while '<strong class' in html:
        i = html.find('<strong class') #find start index
        j = html[i:].find('>') #find end index
        html = html[:i] + '<strong>' + html[j:] #replace


    #convert tags
    tags = ['<u><em><strong>', '</strong></em></u>', '<em><strong><u>']
    for old_tag in tags:
        if '/' in tag:
            new_tag = '</strong>'
        else:
            new_tag = '<strong>'

        html = html.replace(old_tag, new_tag)

    return html

【讨论】:

是的!那对我更好!谢谢你的方式。如果它有 id 和 class 有什么办法吗?像这样:面包店 这个案例与您发布的案例非常不同。你能发布一些具体的例子吗?检查pypi.org/project/beautifulsoup4 以获得更复杂的 HTML 解析。 是的!我需要将 覆盖到 。用 some-thing 是未知的关键字。有什么办法吗? 我已经相应地更新了答案。 是的!非常感谢@alec_djinn,我将尝试使用您的代码。感谢您的分享!

以上是关于如何用python和智能方式覆盖<strong> <em> <u>到<strong>的所有情况?的主要内容,如果未能解决你的问题,请参考以下文章

grafna如何用新的dashbord覆盖旧的dashbord

揭秘如何用Python黑掉智能锅炉

科研小白如何用Python创造深度学习框架!

如何用Python和机器学习炒股赚钱

如何用 Python 进行基于深度学习的计算机视觉项目开发?

如何用智能指针构造树结构?