我有一个HTML文件
...<b>Breakfast</b><hr>...
我希望Breakfast
介于>
和<
之间。
我试过
...for test_string in line:
if re.match(r'(>.*<$)',test_string):...
这也没有给>Breakfast<
。
谢谢。
答案 0 :(得分:4)
一般来说正则表达式无法解析html。您可以使用html解析器:
from BeautifulSoup import BeautifulSoup # pip install BeautifulSoup
html = """...<b>Breakfast</b><hr>..."""
soup = BeautifulSoup(html)
print soup(text=True) # get all text
# -> [u'...', u'Breakfast', u'...']
print [b.text for b in soup('b')] # get all text for <b> tags
# -> [u'Breakfast']
答案 1 :(得分:3)
$
表示“输入结束”,不属于此正则表达式。
相反,请执行以下操作:
m = re.search(r'>([^<]*)<', test_string)
if m:
print m.group(1)
这会搜索>
,然后搜索以下不是<
的所有字符,然后搜索<
。 >
和<
之间的字符标记为一个组,您可以使用m.group(1)
答案 2 :(得分:0)