Подтвердить что ты не робот

Пример регулярного выражения Python

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

Your number is <b>123</b>

Теперь, как я могу извлечь "123", т.е. содержимое первого жирного текста после строки "Ваш номер"?

4b9b3361

Ответ 1

import re
m = re.search("Your number is <b>(\d+)</b>",
      "xxx Your number is <b>123</b>  fdjsk")
if m:
    print m.groups()[0]

Ответ 2

Учитывая s = "Your number is <b>123</b>", тогда:

 import re 
 m = re.search(r"\d+", s)

будет работать и даст вам

 m.group()
'123'

Регулярное выражение ищет в вашей строке 1 или более последовательных цифр.

Обратите внимание, что в этом конкретном случае мы знали, что будет числовая последовательность, иначе вам нужно будет проверить возвращаемое значение re.search(), чтобы убедиться, что m содержит действительную ссылку, иначе m.group() будет в исключении AttributeError:.

Конечно, если вы собираетесь обрабатывать много HTML, вы хотите серьезно взглянуть на BeautifulSoup - это означало для этого и многое другое. Вся идея с BeautifulSoup заключается в том, чтобы избежать "ручного" разбора с помощью строковых операндов или регулярных выражений.

Ответ 3

import re
x = 'Your number is <b>123</b>'
re.search('(?<=Your number is )<b>(\d+)</b>',x).group(0)

это ищет номер, который следует за строкой "Ваш номер"

Ответ 4

import re
print re.search(r'(\d+)', 'Your number is <b>123</b>').group(0)

Ответ 5

Самый простой способ - просто извлечь цифру (число)

re.search(r"\d+",text)

Ответ 6

val="Your number is <b>123</b>"

Опция: 1

m=re.search(r'(<.*?>)(\d+)(<.*?>)',val)

m.group(2)

Вариант: 2

re.sub(r'([\s\S]+)(<.*?>)(\d+)(<.*?>)',r'\3',val)