Поиск символа с использованием Regex в Python - PullRequest
0 голосов
/ 18 июня 2020

У меня есть веб-страница, которая была создана из документа Word (с использованием save as от слова do c). Он сгенерировал несколько символов.

Изначально я использую функцию Regex для поиска «2 General» в сгенерированном тексте HTML. Вот фрагмент, где находится «2 General»:

<span style="font-size:9.5pt;font-family:&quot;Arial Black&quot;,sans-serif">2<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:yes">&nbsp;</span>General<o:p></o:p></span>")

Это код python, который я использовал:

el1_search = "2 General"
el1_search = re.compile(el1_search.replace(' ', '[\s\u00A0]*'))
el1 = soup.find(text=el1_search)

Затем el1_search заменить вводом пользователя. (Я думаю, что) У меня нет возможности найти и заменить символы \ u00A0, потому что я хочу вывести суп с модификациями на основе этого поиска.

После этого пользователь сможет указать c поиск по тексту. Затем результаты будут использованы для обертывания родительского элемента таблицы в div со специальными атрибутами.

Кажется, я не могу найти элемент с элементом \ u00A0. Не могли бы вы мне помочь?

Спасибо!

1 Ответ

0 голосов
/ 18 июня 2020

Вы можете использовать метод BeautifulSoup .get_text() для получения строки (он автоматически обработает &nbsp; et c .. для вас).

Например:

from bs4 import BeautifulSoup

txt = '''<span style="font-size:9.5pt;font-family:&quot;Arial Black&quot;,sans-serif">2<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:yes">&nbsp;</span>General<o:p></o:p></span>'''
soup = BeautifulSoup(txt, 'html.parser')

print(soup.find('span').get_text(strip=True, separator=' '))

Печать:

2 General
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...