首页  >  问答  >  正文

python中涉及AND的正则表达式

我已经努力了一段时间,试图为以下任务获取正确的正则表达式:

我想使用 python 从 html 文件中的表标签中删除数据。为此,我的方法是递归执行以下操作(将标签之间的 HTML 行存储为字符串):

s = "所需内容"

  1. 将字符串 s 重新分配给删除“<...>”之间所有内容的字符串。

s = re.sub('<{1}(不是 '<' 也不是 '>').*>{1}', '', s)

  1. 重复此操作,直到留下 s =“所需内容”。

我的问题是如何实现括号中粗体部分。谢谢。您的文字

我试过了

import re

test_str = '<td style="color:blue">Hello</td>'
test_str = re.sub('<{1}^[<>].*>{1}','',test_str)
print(test_str)

你可以看到我的测试字符串保持不变。我做错了什么?

上面的代码我期望给我 test_str =“Hello”,我会将其反馈给此方法,然后提取“”,给我“Hello”。

P粉988025835P粉988025835371 天前584

全部回复(1)我来回复

  • P粉348088995

    P粉3480889952023-09-15 09:00:18

    要否定字符类,应将 ^ 放在 [ 之后。此外,您不需要为出现一次的字符指定 {1}

    test_str = re.sub('<[^<>]*>', '', test_str)
    

    但是,请注意,使用像 BeautifulSoup 这样的专用 HTML 解析器而不是正则表达式来从 HTML 获取数据更为合适。

    回复
    0
  • 取消回复