前言:
今天各位老铁们对“身份证号码 正则表达式”大体比较注意,我们都想要学习一些“身份证号码 正则表达式”的相关知识。那么小编在网上网罗了一些关于“身份证号码 正则表达式””的相关文章,希望兄弟们能喜欢,朋友们一起来学习一下吧!#头条创作挑战赛#
正则常用字符
构成正则表达式即匹配规则的各种基本字符的含义
元字符
字符
说明
. (点)
可以匹配除了 \n 之外的任何单个字符
[ ]
匹配中括号中任意单个字符
( )
将()之间括起来的表达式定义为“组”(group)表示一个整体,作用:1)改变优先级 2)定义提取组(字符串提取)
|
将两个匹配条件进行逻辑"或"的运算
限定符
作用
限定前面的正则表达式出现的次数
?
1)表示匹配前面的子表达式出现零次或一次
2)是可以终止贪婪模式
*
匹配零或多个之它前面的子表达式,与通配符*没关系
+
表示匹配一次或多次它前面的子表达式
{n}
表示匹配确定的次数
{n,m}
表示至少匹配 n 次,最多匹配 m 次
{n,}
表示至少匹配 n 次,最多不限
特殊
字符
^
在[]外面表示以什么开头;在[]里面表示不能以什么开头
$
表示以什么结尾
i
匹配时忽略字母的大小写
g
用于全局匹配
正则简写模式
这里只有三种d s w 区分大小写共六种小写的表示要匹配的,大写的表示小写的相反面
\d:代表一个数字,等同于[0-9] \D:代表非数字,等同于[^0-9]
\s:代表空白字符,如换行符,Tab制表符等,空格,回车,制表符
\S:代表非空白字符 等同于 [^\t\v\n\r\f]
\w:匹配字母或数字或下划线或汉字,即能组成单词的字符,除%&#@!$等字符
等同于[a-zA-Z0-9_汉字] \W:非\w ,等同于[^\w]
注意:正则中不需要考虑转义符,但使用时需遵守C#规则,因此还是需要写成\\或@
\d 在正则的解释器中表示可以匹配0-9之间的任意一个数字在C#中的解析器中会把 \d的\认为是转义符因此需要在代码中编写为 @"\d"或 "\\d"C#代码中如果只写\d \就会被转义掉组合匹配规则
单个字符表面意思都懂不再赘述
通过解析数字类的正则表达式, 初步了解正则的匹配原则,理清其匹配逻辑(其他类型以此类推)
后面在代码中通过实例讲解复杂的匹配原则
1) 正则 [0123456789] 简写 [0-9]匹配规则:字符串中有数字即可,数字可出现在任意位置[] 看到这个就表示要匹配其中任一单个字符示例: 中国有14亿人口1千万精英掌握9成的财富 反例:中国是人口大国2) 正则 ^[0-9] 匹配规则:字符串中必须是以数字开头^[] 表示以[]中的字符开头- 表示 从什么到什么 ^[0-9]匹配[]其中任一以数字开头示例: 2万多华人在硅谷搞研发 反例:中国有14亿人口3)正则 [789]$[]$表示以[]中任一字符结尾匹配规则:必须是以7,8,9任一一个数字结尾示例:体重 78.8 身高 178.7反例:中国985大学只有39所4)正则 ^[0-9]$匹配规则:只匹配其中只有一个数字的字符串示例:1 2 3 (只能是单个数字)反例:123 456 5)正则 ^[0-9]*$匹配规则:只匹配全是数字的字符串^[]限定开头 ^[0-9]任一数字开头^[0-9]* 表示数字可以有0个或多个^[0-9]*$ 表示只能是数字示例:863 985 211反例:全国一共112所211大学6)正则 ^[1-9]\d*$ 可分成两部分[1-9]与\d*匹配规则:非零开头的正整数^[]以[1-9]里面的任一字符开头^[1-9] 表示开头不能是0\d* 任意0或多个0-9的数字^[1-9]\d* 表示匹配非零开头的数字字符串[1-9]\d*$ 表示匹配 非零开头数字结尾的字符串示例:863 985 211反例:0123 0879
验证只要汉字的正则表达式 :^[\u4e00-\u9fa5]{0,}$
\u4e00”-“\u9fa5”是unicode编码集中中文编码的开始和结束,相当于英文字母的a-z
示例:编写中国邮政编码与身份证号码的正则表达式(全数字的)
1)邮政编码正则1)首先限定只能是数字如 ^[0-9]$或^\d$2)必须是6位数 {6}组合起来^[0-9]${6}或者^\d${6}2)身份证号码一般由15或18位数字组成1)15位的^[0-9]{15}$ 或者 ^\d{15}2)位的照上类推 ^[0-9]{18}$ 或者 ^\d{18}$用()组合起来,便于阅读理解匹配规则:要么15要么18位数字(^\d{15}$)|(^\d{18}$)