2010-09-16 3 views
0

Привет У меня есть 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. Если кто-нибудь знает, пожалуйста, помогите.

ответ

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 
>>> 
+0

Большое спасибо – u449355

Смежные вопросы