Проблема с "в заявлении findall - PullRequest
0 голосов
/ 24 мая 2019

Я сталкиваюсь с проблемой использования "в выражении регулярного выражения findall в поиске в Python HTML-кода.

Я ищу какой-то исходный HTML-код и, похоже, не могу получить кавычки (") для работы в операторе findall. Из-за определенных требований, которые невозможно изменить, я не могу использовать внешние библиотеки, такие как beautifulsoup, для помощи в поиске . Я изменил имена переменных для поиска.

from re import *

def suncorp_find():

    # Setup to find information
    suncorp_file = open('suncorp.html')
    contents_suncorp = suncorp_file.read()

    # Search the HTMl files to find the data
    suncorp_titles = findall(r"\"event-title\">(\w )+", contents_suncorp)

    print(suncorp_titles)

suncorp_find()

Я ожидаю получить список с элементами внутри него, но я просто получаю пустой список. При поиске только заголовка события я получаю несколько элементов со списком search_titles.

Заранее спасибо за любую помощь

<h6 class="event-title">Queensland Reds v Jaguares</h6>

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Используйте это регулярное выражение:

suncorp_titles = findall(r"\"event-title\">(\w.*?)<", contents_suncorp)

Или почему не ниже ??Я снял \w чек.Я не знаю, действительно ли вам это нужно.

suncorp_titles = findall(r"\"event-title\">(.*?)<", contents_suncorp)

Я взял ввод:

<h6 class="event-title">Queensland Reds v Jaguares</h6>
<h6 class="event-title">testing line two</h6>

Вывод:

['Queensland Reds v Jaguares', 'testing line two']
0 голосов
/ 24 мая 2019

Вы должны указать " символ.

from re import findall

tmp = """<some_tag name="event-title">Some text 1</some-tag>
<some_tag name="event-title">Some text 2</some-tag>
<some_tag name="event-title">Some text 3</some-tag>"""

result = findall("\"event-title\">([\w ]+)", tmp)

Вывод:

['Some text 1', 'Some text 2', 'Some text 3']

PS Я рекомендую использовать тестовый веб-сайт regex для проверки ваших выражений.

...