У меня проблема с регулярным выражением. Я проверяю строки как тег:
<a href="/abc/def/ghk/">test_test</a>
. Я хочу захватить только часть /abc/def/ghk
, используя регулярное выражение.
Я использую python и пытаюсь использовать разные выражения.
Я бы использовал 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/
a
элементы имеют href
атрибута; чтобы извлечь первый a
элемент с href
атрибута можно использовать: soup.find('a', href=True)
Вы можете использовать lxml
для работы со ссылками:
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/
Достаточно ли этого?
>>> re.search('<a\s+href="(\S+?)\/"', tags).group(1)
'/abc/def/ghk'
>>>
class
;)
lxml
вместо BS для этой задачи.