Search code examples
pythonpython-re

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


  1. Problem Statement

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

Consider the following Phone numbers:

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

The general format of a phone number is as follows:

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

My Code

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)

enter image description here


Solution

  • With List Comprehension:

     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)        
    

    Output:

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