关于正则表达式匹配提取的问题,向大家请教

zww7821270 2017-03-15 03:47:23
我现在有一段文字,里面可能有电话号码、银行卡号、身份证号、还有可能一堆无关数字,我需要提取出电话好嘛、银行卡号、身份证号(包括结尾带X的身份证)
我的想法是根据匹配出来的数据的长度分类为电话号码(11位)、银行卡号(16|19位)、身份证号(18|15位)
我写的是正则表达式是:\\d{11,100}||\\d{17}(X|x) ,(java的)
但是这样是匹配不到结尾带X的身份证号。故向大家请教。谢谢
...全文
160 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rickylin86 2017-03-17
  • 打赏
  • 举报
回复

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Test{
	public static void main(String[] args){
		String content = "13888888888 6222000000000000 445115568903554984 44511556890355498X";
		String regex_mobile = "\\b1\\d{10}\\b";//手机号码一般以1开头.共11位
		String regex_bankcard = "\\b(\\d{16}|\\d{19})\\b";
		String regex_idCard = "\\b\\d{14}(\\d{3})?[Xx\\d]\\b";
		test(content,regex_mobile);
		test(content,regex_bankcard);
		test(content,regex_idCard);
	}

	private static void test(String content,String regex){
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(content);
		while(matcher.find()){
			System.out.println("找到匹配结果:" + matcher.group());
		}
		System.out.println("------------------------------------");
	}
}
zww7821270 2017-03-15
  • 打赏
  • 举报
回复
假如大家觉得我这个想法不好的话。有更好的方法想法可以也可以告诉我,谢谢

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧