I am trying to extract phone numbers using re.findall( ).But it shows TypeError: expected string or bytes-like object

I am trying to extract phone numbers using re.findall( ).But it shows TypeError: expected string or bytes-like object

  1. 问题陈述

The need to easily verify phone numbers in any relevant scenario.

考虑以下 Phone 个数字:

444-122-1234
123-122-78999
111-123-23
67-7890-2019

一个phone号码的一般格式如下:

Starts with 3 digits and ‘-‘ sign
3 middle digits and ‘-‘ sign
4 digits in the end

我的代码

import re
l1=[444-122-1234,123-122-78999,111-123-23,67-7890-2019]
k=[]
for i in l1:
    str1=re.findall(r'\d{2}-\d{3}-\d{4}',i)
    print(str1)

您只需要将 l1 列表中的每个 phone 数字放在引号内。现在它们只是带有一些负计算的整数。

使用列表理解:

 import re
 l1= ['444-122-1234', '123-122-78999', '111-123-23', '67-7890-2019']
    
 str1 = [re.findall(r'\d{2}-\d{3}-\d{4}', i) for i in l1 if re.findall(r'\d{2}-\d{3}-\d{4}', i) ]
 print(str1)        

输出:

Out[18]: [['44-122-1234'], ['23-122-7899']]