龙空技术网

C# - 解析正则表达式规则,理清匹配逻辑 113

源丁编程 110

前言:

今天各位老铁们对“身份证号码 正则表达式”大体比较注意,我们都想要学习一些“身份证号码 正则表达式”的相关知识。那么小编在网上网罗了一些关于“身份证号码 正则表达式””的相关文章,希望兄弟们能喜欢,朋友们一起来学习一下吧!

#头条创作挑战赛#

正则常用字符

构成正则表达式即匹配规则的各种基本字符的含义

元字符

字符

说明

. (点)

可以匹配除了 \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}$)

标签: #身份证号码 正则表达式 #c语言x大于0123或者y小于0123的表达式是