正则表达式的简单用法+利用正则表达式检验身份证号码格式
正则表达式最简单的用法就是用来判断一个字符串是否符合某种表达式,可以用正则表达式判断字符串是否属于电话号码,是否属于身份证号。。。。
使用正则表达式的步骤很简单:
首先:规定正则表达式,
String matchString = "[a-z][0-9]{8}"
然后:获取pattern,
Pattern pattern = Pattern.compile(matchString);
接下来就可以进行匹配了,
Matcher matcher = pattern.matcher(charSequence);return matcher.matches();
通过举例来解释正则表达式的格式:
private boolean matchPattern(CharSequence charSequence){String matchString = "[a-z][0-9]{8}";Pattern pattern = Pattern.compile(matchString);Matcher matcher = pattern.matcher(charSequence);return matcher.matches();}
Log.i("tag", "a22222222" + matchPattern("a22222222"));Log.i("tag", "a2222222"+matchPattern("a2222222"));Log.i("tag", "az2222222"+matchPattern("az2222222"));Log.i("tag", "2a2222222"+matchPattern("2a2222222"));
匹配结果为:
12-14 11:29:16.392 28663-28663/com.example.yong.myfirstdemo I/tag﹕ a22222222true
12-14 11:29:16.392 28663-28663/com.example.yong.myfirstdemo I/tag﹕ a2222222false
12-14 11:29:16.393 28663-28663/com.example.yong.myfirstdemo I/tag﹕ az2222222false
12-14 11:29:16.393 28663-28663/com.example.yong.myfirstdemo I/tag﹕ 2a2222222false
上述的正则表达式表示所匹配的字符串必须第一位为a-z之间的字符,后8位必须是0-9之间的字符
如果我把正则表达式改成如下的表示方式:
String matchString = "[a-zA-Z][^0-8]{8}";
则匹配结果为:
12-14 11:41:49.296 32423-32423/com.example.yong.myfirstdemo I/tag﹕ a99999999匹配结果: true
12-14 11:41:49.297 32423-32423/com.example.yong.myfirstdemo I/tag﹕ aZ2222222匹配结果: false
12-14 11:41:49.297 32423-32423/com.example.yong.myfirstdemo I/tag﹕ A99999999匹配结果: true
12-14 11:41:49.297 32423-32423/com.example.yong.myfirstdemo I/tag﹕ A88888899匹配结果: false
满足正则表达式要求的为:第一位为a-z和A-Z范围之间的取值,注意到[^...]表示后8位的取值是取0-8的补集,即后八位必须为9.
将正则表达式写成如下形式:
String matchString = "\\d";
匹配结果为
12-14 11:57:46.874 5752-5752/com.example.yong.myfirstdemo I/tag﹕ 9匹配结果: true
12-14 11:57:46.875 5752-5752/com.example.yong.myfirstdemo I/tag﹕ 8匹配结果: true
12-14 11:57:46.875 5752-5752/com.example.yong.myfirstdemo I/tag﹕ a8匹配结果: false
12-14 11:57:46.876 5752-5752/com.example.yong.myfirstdemo I/tag﹕ A8888899匹配结果: false
面试时经常会被问道如何判断是否为身份证号码????
首先要明白身份证号码的编码规则,然后根据编码规则去写正则表达式
身份证编码规则如下(身份证有15为何和18位,以18位身份证为例):
第1位和第2位:省,自治区,直辖市代码(有关取值可查看代码表);
第3位和第4位:地级市,盟,自治州代码(有关取值可查看代码表);
第5位和第6位:县,县级市,区代码(有关取值可查看代码表);
第7位到第10位:出生年(15位身份证出生年显示两位,
例如1992年出生,18位身份证显示1992,而15位则显示92);
第11位和第12位:出生月;
第13位和第14位:出生日;
第15位到第17位:顺序码,第17位若是男生则为单数,若是女生则为双数;
第18位:表示校验码,可以是0-9或者X;(15位身份证无校验码)
验证15位身份证号码的正则表达式为:
String matchString = "^[1-9]\\d{7}((0[1-9])||(1[0-2]))((0[1-9])||(1\\d)||(2\\d)||(3[0-1]))\\d{3}$";
验证18位身份证号码的正则表达式为:
String matchString2 = "^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])||(1[0-2]))((0[1-9])||(1\\d)||(2\\d)||(3[0-1]))\\d{3}([0-9]||X)$";
但是以上正则表达式验证的身份证号码只能说是符合身份证编码规则,不能确定身份证是否有效。。
以上都是一些很简单的 小例子
正则表达式的简单用法+利用正则表达式检验身份证号码格式相关推荐
- EXCEL中如何提取身份证出生日期和性别信息以及检验身份证号码的正确性
中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为: 15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码. 18位:6位数字常住户口所在县市 ...
- 在EXCEL中VBA编程检验身份证号码有效性
*2022-12-05 改正代码中错别字,规范表述 *2022-11-30 1.增加了过程clearB()用来清除B1:Bx原有的出错说明,在过程examIdentityCard() 开头调用 2.修 ...
- Excel中如何利用函数验证身份证号码是否正确?
今天小编跟大家分享一下Excel中如何利用函数验证身份证号码录入是否正确? 1.首先打开Excel文件,然后选中身份证号码单元格区域 2.然后找到并鼠标单击[DIY工具箱]选项 3.点击[身份证] ...
- JS(JavaScript)验证身份证号码格式的合法性
一.JS(JavaScript)验证身份证号码格式的合法性,前端工程师会用到JavaScript验证身份证号码是否合法,这里分享一段本人多年以前多写的JavaScript验证输入身份证号码合法性的代码 ...
- Excel身份证号码格式怎么设置?盘点六种设置方法
我们有时候需要在Excel中录入特殊的数据,比如身份证号码.但是直接在表格中录入身份证号码会自动显示为科学记数格式.那么Excel身份证号码格式怎么设置呢?这里盘点了六种设置方法,大家可以学习一下. ...
- 校验身份证号码格式是否正确
<?php /*** 校验身份证号码格式是否正确* @param string $idcard* @return bool*/ function checkIdcard($idcard) {$i ...
- 【超详总结/理解:正则表达式】特点/元字符/正则表达式中的标志位-flag/RegExp/重复操作与后向引用/匹配模式/表达邮箱/正则表达式对象的方法/利用正则表达式限制网页表单里的文本框输入内容
文章目录 正则表达式: 正则表达式的用途 正则表达式的组成-元字符 正则表达式的特点 正则表达式中的标志位-flag JavaScript中的正则表达式解析 RegExp 定义 RegExp RegE ...
- Java用正则表达式判断学号,利用正则表达式验证学号_利用正则表达式开发动态网页...
[摘 要]在动态网页设计中,利用正则表达式可以高效.快速地进行开发,本文探讨了在PHP中利用正则表达式进行url地址解析,密码和邮件验证以及文本文件的处理. [关键词]正则表达式 PHP 动态网页 [ ...
- python正则表达式提取电话号码_利用正则表达式编写python 爬虫,抓取网页电话号码!...
利用正则表达式编写python 爬虫,抓取网页联系我们电话号码!这里以九奥科技(www.jiuaoo.com)为例,抓取'联系我们'里面的电话号码,并输出. #!/usrweilie/bin/pyth ...
最新文章
- 第 3 章 镜像 - 014 - 镜像的缓存特性
- jsp与jsp页面间的值传递与接收
- python求最小公倍数_python求最大公约数和最小公倍数的简单方法
- 【转】基于WebSocketSharp 的IM 简单实现
- 时间轴的实现(简单到爆炸)
- 基础知识(九)boost+vs2015安装配置
- Hive 之 排序和reduce设置
- 利用jemalloc分析内存泄漏以及LD_PRELOAD
- Innobackupx工具命令简单解析
- 6个常用的Python编程开发工具
- Linux BT下载(2)-B编码和种子文件
- QQ炫舞新上线紫钻Lv9和皇冠贵族Lv11 QQ炫舞紫钻9级图标上线
- 虚函数表构成、地址详细说明
- phpstudy和php,phpstudy和wamp哪个好
- 【哈佛幸福课·健康之道】锻炼的真相
- 最新易支付多功能系统源码+全开源
- 无人机DLG生产作业流程
- Oracle v$SQLAREA
- 四川省天府新区知识产权信息公共服务网点申报好处条件材料
- 6款程序员必备的免费在线画图工具,贼好用!