Регулярное выражение для элемента тега (класса) в html

Я довольно новичок в python и программировании ;-), и я пишу программу для очистки данных с веб-сайта с более чем 6000 строк всего за 1 страницу, в то время как я собираюсь очистить около 20000 тысяч из них , Я использую python 2.7.4

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

<tr class="room_loop_counter1 maintr">
<tr class="room_loop_counter1 extendedRow">
<tr class="room_loop_counter2 maintr odd">
<tr class="room_loop_counter2 extendedRow odd">
<tr class="room_loop_counter3 maintr">
<tr data-occupancy="2" class="room_loop_counter1 ">
<tr data-occupancy="2" class="room_loop_counter2 odd">
<tr data-occupancy="3" class="room_loop_counter3 ">
<tr data-occupancy="3" class="room_loop_counter4 odd">

etc. I'm not sure about space infront of quotes after room_loop_counter1,3.

I was trying to write an expression that would fit next line of code:

soup = BeautifulSoup(html_part)

av = soup.find_all('tr', class_=REGULAR_EXP)

REGULAR_EXP = re.compile('"room_loop_counter"\d\s.')

but I obviously write wrong regular expression for class

How to write one that will be valid? I suppose that it should be an expression that findes all "room_loop_counter" followed by any number of characters (numbers, spaces,letters, but not new line character) Thank you, in advance.

0
nl ja de
Не используйте регулярное выражение для анализа HTML, используйте библиотеку DOM.
добавлено автор Barmar, источник

2 ответы

Вместо использования точки (. ), что означает один символ, в конце используйте . * , что означает любое количество символов. Это должно делать свое дело. Таким образом, ваш код станет следующим:

REGULAR_EXP = re.compile('"room_loop_counter"\d\s.*')
0
добавлено

Следующее regex находит все «room_loop_counter», за которым следует любое количество символов (числа, пробелы, буквы, но не новый символ строки) :

room_loop_counter[A-Za-z\d\s]*

Ваше регулярное выражение "room_loop_counter" \ d \ s. соответствует "room_loop_counter" (обратите внимание на прилагаемые кавычки), за которым следует цифра, за которой следует пробел, а затем любой символ.

So it matches "room_loop_counter"1 x and "room_loop_counter"3 ! but not "room_loop_counter1"

0
добавлено
Спасибо, очень, это сработало
добавлено автор Artem, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing