Python字符串使用多个正则表达式分割

0 投票
1 回答
1403 浏览
提问于 2025-04-16 04:13

你好,我有一个Python字符串,如下所示:

<html><table border = 1><tr><td>JDICOM</td><td>Thu Sep 16 10:13:34 CDT 2010</td></tr></html>

从这个字符串中,我想要提取两个词。

JDICOM
Thu Sep 16 10:13:34 CDT 2010

我尝试过使用 findfindallsplit,但都没有成功,因为涉及到多个正则表达式。

我对Python还很陌生。如果有人知道该怎么做,请帮帮我。

1 个回答

4

法律警告:不要用正则表达式来解析(X)HTML。用像BeautifulSoup这样的解析器会更好。

比如说:

>>> from BeautifulSoup import BeautifulSoup
>>> html = """<html><table border = 1><tr><td>JDICOM</td><td>Thu Sep 16 10:13:34 CDT 2010</td></tr></html>"""
>>> soup = BeautifulSoup(html)
>>> for each in soup.findAll(name = 'td'):
 print each.contents[0]


JDICOM
Thu Sep 16 10:13:34 CDT 2010
>>> 

话虽如此,这里有一个正则表达式可以做到同样的事情。不过要注意:如果标记不规范,这个方法就会失效。

>>> import re
>>> pattern = re.compile('<td>(.*?)</td>', re.I | re.S)
>>> for each in pattern.findall(html):
 print each


JDICOM
Thu Sep 16 10:13:34 CDT 2010
>>> 

撰写回答