Найти только числа python

Как найти число определенной длины в строке с помощью RegEx в Python?

Чтобы найти числа определенной длины, N – это строка, используйте регулярное выражение 3 + для поиска числовых строк любой длины. 7 соответствует одной цифре. После того, как вы найдете все элементы, отфильтруйте их по указанной длине.

Пример 1

В следующем примере мы берем строку и находим в ней все трехзначные числа.

import re str = 'We four guys, live at 2nd street of Malibeu 521. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.' #search using regex x = re.findall('6+', str) print('All Numbers\n',x) #digits of length N N=3 def filterNumber(n): if(len(n)==N): return True else: return False #filter the list finalx = list(filter(filterNumber, x)) print('Final List\n',finalx)
All Numbers ['2', '521', '248', '88796451', '52'] Final List ['521', '248']
  1. re.findall (‘9 +’, str) возвращает все слова, которые являются числами.
  2. Функция filterNumber(n) возвращает истину, если длина числа n равна указанной нами длине N.
  3. Отфильтруйте список, возвращенный на шаге 1, с помощью функции, определенной на шаге 2.
  4. Фильтр на шаге 3 возвращает список, содержащий числа указанной длины.
Читайте также:  Питон сложение двух матриц

Мы узнали, как получить список чисел определенной длины, используя регулярное выражение в Python.

Как получить список всех чисел из строки?

Чтобы получить список всех чисел в строке, используйте регулярное выражение «4 +» с методом re.findall(). 5 представляет собой регулярное выражение, соответствующее одной цифре в строке. 5 + представляет собой непрерывные последовательности цифр любой длины.

Где, str – строка, в которой нам нужно найти числа. re.findall() возвращает список строк, соответствующих регулярному выражению.

Пример 1

В следующем примере мы возьмем строку. Мы живем по адресу 9–162, Малибеу. Мой номер телефона – 666688888. Я найду все числа [‘9’, ‘162’, ‘666688888’], присутствующие в строке.

import re str = 'We live at 9-162 Malibeu. My phone number is 666688888.' #search using regex x = re.findall('9+', str) print(x)

Пример 2: получение списка всех непрерывных цифр в строке

В следующем примере мы возьмем строку: Мы, четверо, живем на 2-й улице Малибеу. У меня в кармане было 248 долларов наличными. Я получил билет с серийным номером 88796451-52. И нахожу все числа [‘2’, ‘248’, ‘88796451’, ’52’], присутствующие в строке.

import re str = 'We four guys, live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.' #search using regex x = re.findall('2+', str) print(x)

Мы узнали, как получить все числа в виде строки в виде списка, используя регулярные выражения в Python, с помощью примеров программ.

Как получить список всех чисел из строки?

Чтобы получить список всех чисел в строке, используйте регулярное выражение «8 +» с методом re.findall(). 9 представляет собой регулярное выражение, соответствующее одной цифре в строке. 7 + представляет собой непрерывные последовательности цифр любой длины.

Где, str – строка, в которой нам нужно найти числа. re.findall() возвращает список строк, соответствующих регулярному выражению.

Пример 1

В следующем примере мы возьмем строку. Мы живем по адресу 9–162, Малибеу. Мой номер телефона – 666688888. Я найду все числа [‘9’, ‘162’, ‘666688888’], присутствующие в строке.

import re str = 'We live at 9-162 Malibeu. My phone number is 666688888.' #search using regex x = re.findall('4+', str) print(x)

Пример 2: получение списка всех непрерывных цифр в строке

В следующем примере мы возьмем строку: Мы, четверо, живем на 2-й улице Малибеу. У меня в кармане было 248 долларов наличными. Я получил билет с серийным номером 88796451-52. И нахожу все числа [‘2’, ‘248’, ‘88796451’, ’52’], присутствующие в строке.

import re str = 'We four guys, live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.' #search using regex x = re.findall('4+', str) print(x)

Мы узнали, как получить все числа в виде строки в виде списка, используя регулярные выражения в Python, с помощью примеров программ.

Источник

2 простые способы извлечения цифр из строки Python

Здравствуйте, читатели! В этой статье мы будем сосредоточиться на способах извлечения цифр из строки Python. Итак, давайте начнем.

2 простые способы извлечения цифр из строки Python

Здравствуйте, читатели! В этой статье мы будем сосредоточиться на способы извлечения цифр из строки Python Отказ Итак, давайте начнем.

1. Использование функции ISDIGIT () для извлечения цифр из строки Python

Python предоставляет нам string.isdigit () Чтобы проверить наличие цифр в строке.

Python Isdigit () Функция возвращает Правда Если входная строка содержит цифровые символы в нем.

Нам не нужно проходить ни один параметр к нему. В качестве вывода он возвращает true или false в зависимости от наличия цифр символов в строке.

inp_str = "Python4Journaldev" print("Original String : " + inp_str) num = "" for c in inp_str: if c.isdigit(): num = num + c print("Extracted numbers from the list : " + num)

В этом примере мы имеем итерацию входной строки символа по символу с использованием A для LOOP. Как только функция ISDIGIT () сталкивается с цифрой, она будет хранить его в строковую переменную с именем «NUM».

Таким образом, мы видим вывод, как показано ниже

Original String : Python4Journaldev Extracted numbers from the list : 4

Теперь мы можем даже использовать понимание списка Python для клуба итерации и iDigit () в одну строку.

При этом цифры символов хранятся в списке «Num», как показано ниже:

inp_str = "Hey readers, we all are here be 4 the time!" print("Original string : " + inp_str) num = [int(x) for x in inp_str.split() if x.isdigit()] print("The numbers list is : " + str(num))
Original string : Hey readers, we all are here be 4 the time! The numbers list is : [4]

2. Использование библиотеки Regex для извлечения цифр

Библиотека регулярных выражений Python называется « » Библиотека Regex «Позволяет нам обнаружить наличие конкретных символов, таких как цифры, некоторые специальные символы и т. Д. Из строки.

Нам нужно импортировать библиотеку Regex в среду Python, прежде чем выполнять любые дальнейшие шаги.

Далее мы мы Re.findall (R ‘\ D +’, String) Чтобы извлечь цифры символов из строки. Часть ‘\ D +’ поможет функцию findall () для обнаружения наличия любой цифры.

import re inp_str = "Hey readers, we all are here be 4 the time 1!" print("Original string : " + inp_str) num = re.findall(r'\d+', inp_str) print(num)

Итак, как видно ниже, мы получим список всех цифр из строки.

Original string : Hey readers, we all are here be 4 the time 1! ['4', '1']

Заключение

По этому, мы подошли к концу этой темы. Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом.

Я рекомендую всем вам попробовать реализацию приведенных выше примеров с использованием структур данных, таких как списки, Dict и т. Д.

Для большего количества таких постов, связанных с Python, оставаться настроенными, а до тех пор, как потом, счастливое обучение !! 🙂.

Читайте ещё по теме:

Источник

Извлечь из строки числа

Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке. Например, задана строка «abc83 cde7 1 b 24». На выходе мы должны получить список [83, 7, 1, 24].

Решение задачи на языке программирования Python

Следует посимвольно перебирать строку. Если очередной символ цифра, надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.

s = input() length = len(s) integers = [] i = 0 # индекс текущего символа while i  length: s_int = '' # строка для нового числа while i  length and '0'  s[i]  '9': s_int += s[i] i += 1 i += 1 if s_int != '': integers.append(int(s_int)) print(integers)
5 dkfj78df 9 8 dkfj8 [5, 78, 9, 8, 8]

Обратите внимание, что данное решение извлекает именно числа, а не цифры. Иначе мы бы не получили число 78, а получили отдельно цифру 7 и цифру 8. Задача на извлечение цифр существенно проще.

a = input() num_list = [] num = '' for char in a: if char.isdigit(): num = num + char else: if num != '': num_list.append(int(num)) num = '' if num != '': num_list.append(int(num)) print(num_list)

Если в строке числа всегда отделены от слов пробелами, задача решается проще:

s = input() word_list = s.split() num_list = [] for word in word_list: if word.isnumeric(): num_list.append(int(word)) print(num_list)

Здесь происходит разделение строки на слова по пробелам. В цикле с помощью метода isnumeric каждое слово проверяется, является ли оно числом. Подобную задачу можно решить в одну строку, если использовать функцию filter .

s = input() word_list = s.split() num_list = [int(num) for num in filter( lambda num: num.isnumeric(), word_list)] print(num_list)

В функцию filter передается лямбда-выражение, проверяющее слова, и список слов. Функция возвращает список строк-чисел. Далее с помощью генератора списка строки преобразовываются в целочисленный тип.

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

import re s = input() nums = re.findall(r'\d+', s) nums = [int(i) for i in nums] print(nums)

Для поиска вещественных чисел:

import re s = input() nums = re.findall(r'\d*\.\d+|\d+', s) nums = [float(i) for i in nums] print(nums)

Источник

Оцените статью