首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在我的代码中添加无效的电话号码条件?

有没有办法在我的代码中添加无效的电话号码条件?
EN

Stack Overflow用户
提问于 2019-08-20 08:49:01
回答 1查看 82关注 0票数 1

我在python(熊猫),databricks中有以下代码。这是很好的工作,但它没有过滤出无效的电话号码。

代码遵循模式,过滤出家庭和移动电话号码。

代码语言:javascript
复制
import pandas as pd 
import re
from pyspark.sql.functions import lit

df = Phonevalidation

# function to check the phone number pattern
def isValid(s): 
  Pattern = re.compile("(0|44)?[7-9][0-9]{9}") 
  if(Pattern.match(s)):
    return 'Mobile Number'
  else: return 'Home phone'

#UDF Register
PhType = udf(isValid)

df1 = Phonevalidation.withColumn('Phtype' ,PhType('Phonenumber') )
display(df1)

我希望过滤掉长度>10或<10的无效电话号码,或者像0000000或11111这样的号码被标记为无效。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-20 09:17:16

您目前使用的代码以9位数字标记,以0或英国国家代码开头,然后以初始7、8或9作为移动号码,但其他所有内容(包括畸形的数字)都用作家庭号码:

代码语言:javascript
复制
  Pattern = re.compile("(0|44)?[7-9][0-9]{9}") 
  if(Pattern.match(s)):
    return 'Mobile Number'
  else: return 'Home phone'

如果你想要的是美国的数字,grep with regex for phone number可能会有所帮助。

我希望过滤掉长度>10或<10的无效电话号码,或者像0000000或11111这样的号码被标记为无效。

对于您的想法的第一部分,您可以使用像Pattern = re.compile("[0-9]{10}")这样的模式,第二部分,我将把它放入一个伪代码中,例如

代码语言:javascript
复制
if (Pattern.match(s)):
   if (s != '0000000000' or s != '1111111111'):
      return: 'Fitting your criteria'
else: return 'Not valid' 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57569928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档