Stuck with the regex quiz in Python | Sololearn: Learn to code for FREE!


Stuck with the regex quiz in Python

The code passes all five tests except the third one which i Can not see since i'm not a pro membre. I couldn't find the error. #You are given a number input, and need to check if it is a valid phone number. #A valid phone number has exactly 8 digits and starts with 1, 8 or 9. #Output "Valid" if the number is valid and "Invalid", if it is not. #Sample Input #81239870 #Sample Output #Valid import re number = str(input()).replace(" ", "") number = number.strip() pattern = "^([189])(\d){7}" match = re.match( pattern , number ) if match : print("Valid") else : print("Invalid")

4/12/2021 5:07:28 PM

Soufiane Drissi

3 Answers

New Answer


One advice==> Don't make simple problems complex as the chances of getting an error increases. Question asks us to write logic for 2 conditions. 1. It should start with 1|8|9 2. It should have exactly 8 numbers. Excluding the first num, it will have 7. Write a regex pattern satisfying these two conditions. pattern = r"^[189]\d{7}$" You are done. remove that replace and strip method, they are unessential here. Simply add one $ at the end to specify the end point


Thanks for your answers. I forfait the $ metacharacter , so my pattern allowed for more than 8 digits.


Hint: In your code 123456789 or 9876543210-1-2-3+4 was valid too, it's wrong.