本发明涉及一种提取手机号码的方法,具体涉及一种从任意文本中提取手机号码的方法。
背景技术:
目前也有一些从文本中提取手机号码的方法,但是文本中的手机号码往往格式不同,有多种不同的写法;通常采用正则表达式,针对不同格式分别进行处理;但是,考虑的手机号码格式越多,正则表达式会越复杂;而且会容易出错,难以覆盖所有格式;针对不同格式分别进行处理的话,会难以覆盖各种格式的组合,且代码复杂。
技术实现要素:
本发明提供一种能够快速地识别出不同格式的手机号码的提取手机号码的方法。
本发明采用的技术方案是:一种提取手机号码的方法,包括以下步骤:
(一)对文本进行扫描,通过正则表达式提取文本中的标准格式手机号码,将提取的标准格式手机号码从文本中删除;
(二)对文本进行再次扫描,将非标准格式的手机号码转换为标准格式手机号码;
(三)重复步骤(一)提取文本中的标准格式手机号码;
(四)对提取出的手机号码进行校验。
一种提取手机号码的方法,包括如下步骤:
(一)扫描文本,采用计数器,对每一个连续数字分别计数;计数完成后,从文本中提取出计数为11的连续数字作为标准格式手机号码;将提取的标准格式手机号码从文本中删除;
(二)对文本进行再次扫描,将非标准格式的手机号码转换为标准格式手机号码;
(三)重复步骤(一)提取文本中的标准格式手机号码;
(四)对提取出的手机号码进行校验。
进一步的,所述步骤(二)中将非标准格式的手机号码转换为标准格式手机号码的方法为,删除文本中的分隔字符。
进一步的,所述分隔字符包括“-”“、” “,”“,”和空格。
本发明的有益效果是:
(1)本发明简化了手机号码的提取方法,把非标准格式的手机号码转化为标准格式进行提取;
(2)本发明可以提取不同格式的手机号码,有效减少漏提率。
附图说明
图1为本发明流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步说明。
一种提取手机号码的方法,包括以下步骤:
(一)对文本进行扫描,通过正则表达式找出文本中的标准格式手机号码,将提取的标准格式手机号码从文本中删除;
(二)对文本进行再次扫描,将非标准格式的手机号码转换为标准格式手机号码;
(三)重复步骤(一)提取文本中的标准格式手机号码;
(四)对提取出的手机号码进行校验。
一种提取手机号码的方法,包括如下步骤:
(一)扫描文本,采用计数器,对每一个连续数字分别计数;计数完成后,从文本中提取出计数为11的连续数字作为标准格式手机号码;将提取的标准格式手机号码从文本中删除;
(二)对文本进行再次扫描,将非标准格式的手机号码转换为标准格式手机号码;
(三)重复步骤(一)提取文本中的标准格式手机号码;
(四)对提取出的手机号码进行校验。
进一步的,所述步骤(二)中将非标准格式的手机号码转换为标准格式手机号码的方法为,删除文本中的分隔字符。
进一步的,所述分隔字符包括“-”“、” “,”“,”和空格等。
本发明中的手机号码指国内手机号码,在不考虑国家码的情况下,由11位数字组成;标准格式手机号码,指如“13812345678”这样连续写在一起中间无分隔符的11位数字手机号码;从任意文本中提取手机号码时,手机号码存在多种写法,例如:
A、13812345678
B、138-1234-5678
C、138,1234,5678
D、1381,234,5678
E、1381-2345-678
F、138 1234 5678
使用时,通过正则表达式找出文本中的标准格式手机号码,将找出的手机号码从文本中提取出来,并从文本中删除;本实施例中只能从文本中提取出A这种格式的手机号码;对文本进行扫描,将非标准格式的手机号码转换为标准格式手机号码;将文本中的“-”、“,”和空格均删除,然后通过正则表达式找出文本中的标准格式手机号码,将找出的手机号码从文本中提取出来;本实施例中将B、C、D、E、F这种格式的手机号码均可以提取出来。
本发明简化了手机号码的提取方法,把不同格式的手机号码转换成一种标准格式进行提取;通过过滤可能的手机号码数字间的分割字符,把文本中各种写法的手机号码转换成标准格式手机号码,然后进行二次提取;可以有效处理各种不同写法的手机号码,减少漏提率。