регулярное выражение Python xpath - регулярное выражение атрибута XPATH - PullRequest
2 голосов
/ 24 марта 2019

Учитывая гибкую строку шаблона регулярного выражения, мне нужно найти все прикрепленные атрибуты.

Пример строки: /html/body/div[1]/div/a/(@title|@href)

Необходимо вернуть ['@title', '@href']

Я провел некоторое исследование и создал шаблон регулярного выражения, подобный следующему: /@\w+/g

Попробовал его на regex101, и он, похоже, работает: https://regex101.com/r/cO8lqs/9124

Но когда я кодировал его в python

import re
xpath = "/html/body/div[1]/div/a/(@title|@href)"

print(re.findall("/@\w+/g", xpath)) # should have been worked

Возвращает []

Как упоминалось выше, необходимо вернуть ['@title', '@href']

Я что-то пропустил?

Ответы [ 2 ]

2 голосов
/ 24 марта 2019

Как предложено @FailSafe в комментарии к вопросу, оказывается, мне нужно изменить шаблон регулярного выражения с /@\w+/g на @\w+.

1 голос
/ 24 марта 2019

Вы также можете попробовать другое выражение XPath, чтобы получить тот же вывод

/html/body/div[1]/div/a/@*[name()="title" or name()="href"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...