Как найти число определенной длины в строке с помощью RegEx в Python?
Чтобы найти числа определенной длины, N – это строка, используйте регулярное выражение [0-9] + для поиска числовых строк любой длины. [0-9] соответствует одной цифре. После того, как вы найдете все элементы, отфильтруйте их по указанной длине.
Пример 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('[0-9]+', 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']
Ниже приводится объяснение наиболее заметных программных операторов в приведенном выше примере:
- re.findall (‘[0-9] +’, str) возвращает все слова, которые являются числами.
- Функция filterNumber(n) возвращает истину, если длина числа n равна указанной нами длине N.
- Отфильтруйте список, возвращенный на шаге 1, с помощью функции, определенной на шаге 2.
- Фильтр на шаге 3 возвращает список, содержащий числа указанной длины.
Мы узнали, как получить список чисел определенной длины, используя регулярное выражение в Python.
Как получить список всех чисел из строки?
Чтобы получить список всех чисел в строке, используйте регулярное выражение «[0-9] +» с методом re.findall(). [0-9] представляет собой регулярное выражение, соответствующее одной цифре в строке. [0-9] + представляет собой непрерывные последовательности цифр любой длины.
numbers = re.findall('[0-9]+', str)
Где, 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('[0-9]+', str)
print(x)
Вывод:
['9', '162', '666688888']
Пример 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('[0-9]+', str)
print(x)
Вывод:
['2', '248', '88796451', '52']
Мы узнали, как получить все числа в виде строки в виде списка, используя регулярные выражения в Python, с помощью примеров программ.
Как получить список всех чисел из строки?
Чтобы получить список всех чисел в строке, используйте регулярное выражение «[0-9] +» с методом re.findall(). [0-9] представляет собой регулярное выражение, соответствующее одной цифре в строке. [0-9] + представляет собой непрерывные последовательности цифр любой длины.
numbers = re.findall('[0-9]+', str)
Где, 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('[0-9]+', str)
print(x)
Вывод:
['9', '162', '666688888']
Пример 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('[0-9]+', str)
print(x)
Вывод:
['2', '248', '88796451', '52']
Мы узнали, как получить все числа в виде строки в виде списка, используя регулярные выражения в Python, с помощью примеров программ.
Автор