Извлекать число между тегами

Я хочу получить число 8 из строки <div class = "abc">+8</div>.

Обратите внимание, что abc не исправлен. Это строка, которая в следующий раз может быть xyz.

Как получить номер?

Не анализируйте HTML с помощью регулярного выражения!
zwer 03.04.2018 12:36

откуда эта строка?

Irmen de Jong 03.04.2018 12:41
docs.python.org/3/library/html.parser.html
Asunez 03.04.2018 12:47
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
42
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вот с красивым мылом:

from bs4 import BeautifulSoup
soup = BeautifulSoup(string)
tag=soup.div
print(tag.string)
Ответ принят как подходящий

I want to get the number 8 from the string <div class = "abc">+8</div>.

Вы недостаточно конкретны.

'<div class = "abc">+8</div>'[18]

дает вам '8'. Это работает, если abc также является xyz.

Ожидаете ли вы, что номера всегда начинаются с префикса +? (Я предполагаю, что - тоже вариант). Они всегда внутри тегов <div>? Используются ли теги <div> для чего-нибудь, кроме хранения этих номеров? Может ли <div>, окружающий число, содержать что-то еще, кроме числа? Может ли какой-либо <div> содержать определяемый пользователем текст, который выглядит как эти числа в исходном коде? Прежде чем вы сможете определить свою проблему более конкретно, вы рискуете получить ложные срабатывания.

[ int(x) for x in re.findall(r'<div[^>]+>([+-]\d+)</div>', s) ]

Другие вопросы по теме