在 python 中使用正则表达式查找有效的 phone 号码

Find a valid phone number using regular expression in python

phn1='412-1114-1234'

if re.search("\d{3}-\d{3}-\d{4}",phn1):
  print('It is a phone number')

else:
  print('It is not a phone number')

输出:它不是一个phone数字

但是,当我传递输入时:

phn1='4123-111-1234'

输出:它是一个phone数字

我在第二个 phone 数字中得到错误输出的代码有什么问题?

matches 123-111-1234 (Everything except the first digit). Change your regex to: ^\d{3}-\d{3}-\d{4}$ to make sure it only matches the whole input (example).

这是 search 方法的行为,请尝试 match。当您尝试搜索时,它会从 123-111-1234 这部分找到匹配项。更多信息:search vs match