2 способа найти число в строке Python

2 способа найти число в строке Python Статьи

Введение

В данной статье разберём 2 способа найти число в строке Python.

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

Поиск всех чисел в строке

Один из наиболее эффективных способов извлечения чисел из строки — это использование регулярных выражений. В модуле re есть функция findall(), которая ищет непересекающиеся совпадения с заданным шаблоном в строке и возвращает список найденных совпадений.

Синтаксис функции re.findall():

import re

re.findall(pattern, string, flags)

Где:

  • pattern — шаблон регулярного выражения, по которому будет производиться поиск;
  • string — строка, в которой будет производиться поиск совпадений;
  • flags (необязательный) — дополнительные флаги, управляющие поведением поиска.

Поиск всех чисел в строке при помощи функции re.findall():

import re

text = "Привет, меня зовут Иван, мне 30 лет и я живу в Воронеже. У нас сейчас 20 февраля 2024 года"
matches = re.findall(r"\d+", text)
print(matches)
# Вывод: ['30', '20', '2024']

Для поиска конкретно чисел в качестве шаблона мы указали \d+:

  • \d соответствует любой цифре от 0 до 9;
  • + означает, что предыдущий символ (в данном случае \d) должен повторяться один или более раз.

Поиск первого числа в строке

Если необходимо найти только первое число в строке, то можно воспользоваться функцией re.search(). Она ищет первое совпадение с шаблоном в строке.

Синтаксис:

import re

re.search(pattern, string, flags)

Где:

  • pattern — регулярное выражение (шаблон), которое необходимо найти в строке;
  • string — строка, в которой необходимо найти совпадение с шаблоном;
  • flags (необязательный параметр) — флаги, которые могут изменять поведение поиска.

Поиск первого числа в строке при помощи функции re.findall():

import re

text = "Привет, меня зовут Иван, мне 30 лет и я живу в Воронеже. У нас сейчас 20 февраля 2024 года"
number = re.search(r'\d+', text).group()

print(number)
# Вывод: 30

Метод group() возвращает совпадение, найденное с помощью регулярного выражения.

Использование методов строк

Ещё, для поиска чисел в троке можно воспользоваться встроенным строковым методом isdigit(), который определяет, является ли строка числом. Чтобы найти числа в строке с его использованием, мы создадим генератор списков, в котором будем проходиться по каждой подстроке и проверять, является ли она числом. Если она является числом, то сохраним её в итоговом списке.

text = "Привет, меня зовут Иван, мне 30 лет и я живу в Воронеже. У нас сейчас 20 февраля 2024 года"
numbers = [word for word in text.split() if word.isdigit()]

print(numbers)
# Вывод: ['30', '20', '2024']

Заключение

В ходе статьи мы с Вами разобрали 2 способа найти число в строке Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start