用于检查标记和获取字符串的特定部分的正则表达式

时间:2011-04-22 16:33:00

标签: python regex

我正面临着正则表达式的问题。我正在检查像标签的字符串: <a href="/abc/def/ghk/">test_test</a>。我想使用正则表达式仅捕获/abc/def/ghk部分。

我正在使用python并尝试过不同的表达方式。

3 个答案:

答案 0 :(得分:4)

我使用BeautifulSoup,因为它是为了做这样的事情而做的:

>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup('<a href="/abc/def/ghk/">test_test</a>')
>>> print soup.findAll('a', {'href': True})[0]['href']
/abc/def/ghk/

答案 1 :(得分:1)

这还够吗?

>>> re.search('<a\s+href="(\S+?)\/"', tags).group(1)
'/abc/def/ghk'
>>>

答案 2 :(得分:1)

您可以使用lxml to work with links

from lxml import html

for _, attr, link, _ in html.iterlinks('<a href="/abc/def/ghk/">test_test</a>'):
    if attr == 'href':
       print link

输出

/abc/def/ghk/