+ 14
[SOLVED] Python Phone Number Validator
Hi! This is the only challenge I need to do, to finish the python course. The valid number starts with 1or8or9 and has the length of 8. My code passed the first 4 tests, but it failed the 5th test. I can't see the phone number in the 5th test. What can be the problem? Current code: import re number = input() if re.search("([189])[\d]+", number) and len(number) == 8: print("Valid") else: print("Invalid")
47 Answers
+ 4
https://code.sololearn.com/cA3A20a15A2a
You can find answer in the above link.
+ 54
import re
pattern = r"^[189][0-9]{7}quot;
if re.match(pattern, input()):
print("Valid")
else:
print("Invalid")
===========================================
I hope this helps you all.
^ is for starts with [189],
[0-9] digits for {7} repetiotions
$ to end total of [189] + [0-9]{7} which is equals to 8.
Hope you have understood my answer😊
+ 8
import re
a = input()
pattern = r"[189]"
if re.match(pattern,a):
if len(a) == 8:
print("Valid")
else:
print("Invalid")
else:
print("Invalid")
+ 5
import re
#your code goes here
number = input()
if re.match(r"^[1|8|9]\d{7}quot;, number):
print("Valid")
else:
print("Invalid")
+ 4
import re
pattern = r"^[189][0-9]{7}"
str = input()
match = re.search(pattern, str)
if match:
print("Valid")
else:
print("Invalid")
What wrong with this code?
+ 4
i still get one case not correct this is my code where is the mistake ?
import re
#your code goes here
pattern = r"^1|8|9 + [0-9]{7}quot;
num = str(input())
if re.search(pattern, num):
print("Valid")
else:
print("Invalid")
+ 4
Here is my answer to that guys:
import re
number = input()
pattern = r"^[189][0-9]"
match = re.match(pattern, number)
if len(number) == 8 and match:
print("Valid")
else:
print("Invalid")
+ 4
@Arya Huda Arrasyid
You need a $ at the end of your regex, otherwise, the phone number can start with the correct 8 digits but then go on indefinitely.
It can only be 8 digits
+ 3
Most probably you're getting this failure in last test case cause re.search() searches for the whole string even if the string contains multi-lines and tries to find a match of the substring in all the lines of string but you want your numeric number to only START with 1,8 or 9. better to use re.match() instead
+ 3
import re
num = input ()
pattern = r"^[1|8|9][0-9]*quot;
if re.match(pattern,num) and len(num)==8:
print("Valid")
else:
print("Invalid")
+ 3
I think this is simplest:
import re
phone = input()
pattern = r"^[189][0-9]{7}quot;
if re.match(pattern, phone):
print("Valid")
else:
print("Invalid")
+ 3
import re
#your code goes here
number = input()
pattern = r"^(1|8|9)"
match = re.match(pattern, number)
if match and len(number) == 8:
print("Valid")
else:
print("Invalid")
+ 2
I recommend to test the code on the SL Playground with a few data inputs and a few print statements and see what happend and solve that.
Sp you could see that 01234567 gives a valid number, what unfortunately is not true from task description.
The solution for it will be to code that the number has to begin with 1 or 8 or 9.
+ 2
import re
#tu código va aquí
pattern = "\d\1|8|9{1,9}quot;
number = input()
if re.search(pattern, number) and len(number) == 8:
print("Valid")
else:
print("Invalid")
+ 2
Try this:
import re
#your code goes here
str = input()
pattern = r"^(1|8|9)+\d{7,7}quot;
if re.match(pattern , str):
print("Valid")
else:
print("Invalid")
+ 2
Okime Obia It's the python library for regular expressions
+ 1
import re
print("Valid" if re.match(r'[789]\d{7}#x27;, input()) else 'Invalid')
+ 1
Mi respuesta es:
import re
pattern = r"(1|8|9)[0-9]{7}quot;
entrada = input()
if re.match(pattern, entrada):
print("Valid")
else:
print("Invalid")
+ 1
import re
num = input ()
pattern = r"^[1|8|9][0-9]*quot;
if re.match(pattern,num) and len(num)==8:
print("Valid")
else:
print("Invalid")
+ 1
import re
x=input()
if re.fullmatch("[189]\d{7}",x):
print('Valid')
else:
print("Invalid")