Python字符串使用多个正则表达式分割
你好,我有一个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
我尝试过使用 find
、findall
和 split
,但都没有成功,因为涉及到多个正则表达式。
我对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
>>>