Извлечь подстроку с регулярным выражением, всегда Нет re.match () - PullRequest
0 голосов
/ 26 марта 2019

Я хотел бы извлечь некоторую информацию из строки с помощью регулярных выражений, но результат всегда Нет.Исходный код выглядит следующим образом:

line = '<meta content=\"Allrecipes\" property=\"og:site_name\"/>'
x = re.match(r'property=".+?"',line)
print(x)

Я хочу извлечь кортежи содержимого и свойств, как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Ответ от @DirtyBit лучше, чем с помощью регулярных выражений.Но, если вы все еще хотите использовать регулярные выражения, это может помочь ( RegexDemo ):

line = '<meta content=\"Allrecipes\" property=\"og:site_name\"/>'
regex = re.search("content=\\\"(?P<content>.*)\\\".*property=\\\"(?P<prop>.*)\\\"\/>",line)
print (regex.groups())

Вывод:

('Allrecipes', 'og:site_name')
0 голосов
/ 26 марта 2019

Я бы предложил что-то более подходящее.

Использование beautifulsoup:

from bs4 import BeautifulSoup

line = '<meta content=\"Allrecipes\" property=\"og:site_name\"/>'
soup = BeautifulSoup(line, 'lxml')

print("Content: {}".format(soup.meta["content"]))
print("Property: {}".format(soup.meta["property"]))

ВЫХОД :

Content: Allrecipes
Property: og:site_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...