从复杂字符串中找出符合正则的字符串

笔者从导游证中识别出文字后,需要提取导游证号

电子导游证长这样


返回数据长这样

{"status":"0","msg":"ok","result":["中国移动4G","14:18","Q36%口","<返回关闭","导游证","●●●","APP关闭","CHINA TOUR GUIDE","沈XX","SHEN SHUFANG","导游证号:YBP3XX2R","导游级别:初级","导游语种:普通话初级","所在机构:XXX中国际旅行社有限","公司","回强口","查看评价信息"]}

因为识别效率以及导游证格式多种并且因为用户上传的照片有些比较模糊,“导游证号”这四个字不一定识别得出来.如果是导游证号都模糊识别不出来,那就没话说了,直接转人工识别了

所以采用下述方法来取导游证号

正则

[\\d+.\\d+|\\w+]{8}

我们需要导游证号YBP3XX2R 由英文以及数字组成,并且长度为8

上代码

 public static void main(String[] args){  
		        String  str="{\"status\":\"0\",\"msg\":\"ok\",\"result\":[\"中国移动4G\",\"14:18\",\"Q36%口\",\"<返回关闭\",\"导游证\",\"●●●\",\"APP关闭\",\"CHINA TOUR GUIDE\",\"沈XX\",\"SHEN SHUFANG\",\"导游证号:YBP3XX2R\",\"导游级别:初级\",\"导游语种:普通话初级\",\"所在机构:XX中国际旅行社有限\",\"公司\",\"回强口\",\"查看评价信息\"]}";  
		        String s = "[\\d+.\\d+|\\w+]{8}";
		        Pattern  pattern=Pattern.compile(s);  
		        Matcher  ma=pattern.matcher(str);  
		   
		        while(ma.find()){  
		        		System.out.println("find "+ma.group());  
		        	}
		   
		    }  


输出:find YBP3XX2R

正则表达式中“\d”表示[0-9]的数字,“\d+”表示由[0-9]的数字组成的数字,“\w”表示[A-Z0-9],“\w+”表示由数字、26个英文字母或者下划线组成的字符串,“\d+.+\d+”表示小数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

We_Join

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值