【正则表达式】1.基本字符

1.组成正则字符

确定字符

/hello/gm
hello曾小红 ,welcome to regex learn site 

不确定字符

/\d\d\d\d/m
【阿里云】您正在登录验证,验证码2571,
切勿将验证码泄露于他人,本条验证码有效期15分钟。

混合字符

请匹配运动员的挺举成绩
提示:本例包括单位:KG

/挺举\d\dKG/gm

曾小红,男,举重运动员,28岁,体重56KG,身高175cm。最好成绩:挺举98KG

2.范围字符

.任意字符

除换行符外的任意单个字符

请匹配所有姓张的名字. 可以匹配任意一个字符

/张../gm

姓名	  / 籍贯		  体重		生日
于小彤 / 中国辽宁 / 63 KG / 1994-05-27
<u>张惠妹</u> / 台湾台东县卑南乡 / 46 KG / 1972-08-09
沈佳妮 / 中国上海 / 51 KG / 1983-05-22
沈丹萍 / 中国南京 / 65 KG / 1960-02-19
王紫逸 / 中国香港 / 65 KG / 1986-12-15
吴健 / 中国淄博 / 68 KG / 1978-01-03
金荷娜 / 韩国 / 48 KG / 1978-02-21
<u>张曼玉</u> / 中国 / 40 KG / 1964-09-20
薛佳凝 / 哈尔滨 / 45 KG / 1978-08-13

\w单词字符

\w表字母、数字、下划线中任意单个字符。
注意:在正则表达中范围字符是区分大小写的,通常是表示反义。如\W 表示\w之外的字符

请匹配css样式中所有
颜色
代码
以#开头的6位十六进制数用于表示颜色,规律如下 :
以#开头,以;结尾
6个字母或数字
记得结尾要包含 ;

/#\w\w\w\w\w\w;/gm

html{
   background-color: #1e1e1e;
}
body{
   color: #55432c;
   background-color: #5b3d17;
}
div{
   color: #ff0000;
}

\d数字符

\d 表示0-9任意单个字符。
大写的\D表示反义,即\d之外的字符

请匹配文中所有的生日
小提示:复杂的表达式,可以先编写确定部分,在写不确定部分。
注:匹配的结果不包含空格
/\d\d\d\d-\d\d-\d\d/gm

姓名	  / 籍贯		  体重		生日
于小彤 / 中国辽宁 / 63 KG / 1994-05-27
张惠妹 / 台湾台东县卑南乡 / 46 KG / 1972-08-09
沈佳妮 / 中国上海 / 51 KG / 1983-05-22
沈丹萍 / 中国南京 / 65 KG / 1960-02-19
王紫逸 / 中国香港 / 65 KG / 1986-12-15
吴健 / 中国淄博 / 68 KG / 1978-01-03
金荷娜 / 韩国 / 48 KG / 1978-02-21
张曼玉 / 中国 / 40 KG / 1964-09-20
薛佳凝 / 哈尔滨 / 45 KG / 1978-08-13

\s 空白字符

\s表示单个空白字符,其包括空格、tab制表符、换行。注意:退格不属于空白字符
大写的\S表示反义,即非空白字符,也是正则中常用字符

3.自定义范围字符

定定义范围指由多个字符,多个范围字符组成的集合,取其中任意一个。

[abc123] 任意范围

一组由确定字符组成的字符集,取其中一个

请使用[]匹配姓:张、沈、薛的名字
提示: 姓氏范围是:张、沈、薛
名称不确定可由.代替

[张沈薛]..

姓名	  / 籍贯		  体重		生日
于小彤 / 中国辽宁 / 63 KG / 1994-05-27
张惠妹 / 台湾台东县卑南乡 / 46 KG / 1972-08-09
沈佳妮 / 中国上海 / 51 KG / 1983-05-22
沈丹萍 / 中国南京 / 65 KG / 1960-02-19
王紫逸 / 中国香港 / 65 KG / 1986-12-15
吴健 / 中国淄博 / 68 KG / 1978-01-03
金荷娜 / 韩国 / 48 KG / 1978-02-21
张曼玉 / 中国 / 40 KG / 1964-09-20
薛佳凝 / 哈尔滨 / 45 KG / 1978-08-13

[0-9] 数字区间范围

指定数字范围集,[0-9] 等同于\d

请用[n-m]匹配下文中合法的日期
想一想:日期中的年、月、日有哪些特征? 注:文中年份都是合法的

正则:/\d\d\d\d-[01]\d-[0-3]\d/gm

1970-59-19
1979-07-23
1974-05-23
1986-08-23
1979-02-08
1967-31-27
1981-09-49
1978-04-17
1976-08-13
1979-01-06
1979-10-15
1981-01-05
1979-10-75
1979-01-05
1967-08-12

[a-z0-9] 混合范围集

[a-c\d] 表示 a、b、c字母或0-9数字中任意一个字符。等同于[a-c0-9]

请匹配合法的颜色代码
以#开头的6位十六进制数用于表示颜色,规律如下 :
以#开头,以;结尾
由6个字母或数字组成
16进制字母只能是a-f
匹配结果包括#和;

正则:/#[\da-f]{6};/gm

html{
   background-color: #1e1e1e;
}
body{
   color: #55432c;
   background-color: #5b3g17;
}
div{
   color: #ff0000;
}

[^ ] 排除范围

表示[ ]集之外的任单个字符,如[^0-9] 表示非数字,效果等同于\D

请匹配80年代或90年代以外的日期
提示: 通过[^8-9] 排除年份中的第3位。

正则:/\d\d[^8-9\D]\d-\d\d-\d\d/gm

姓名	  / 籍贯		  体重		生日
于小彤 / 中国辽宁 / 63 KG / 1994-05-27
张惠妹 / 台湾台东县卑南乡 / 46 KG / 1972-08-09
沈佳妮 / 中国上海 / 51 KG / 1983-05-22
沈丹萍 / 中国南京 / 65 KG / 1960-02-19
王紫逸 / 中国香港 / 65 KG / 1986-12-15
吴健 / 中国淄博 / 68 KG / 1978-01-03
金荷娜 / 韩国 / 48 KG / 1978-02-21
张曼玉 / 中国 / 40 KG / 1964-09-20
薛佳凝 / 哈尔滨 / 45 KG / 1978-08-13

[.$^]范围集中的特殊字符

.表示任意字符,但在[.] 中它表示的是 . 字符本身。甚至是^、-、[、] 范围集本身语法,如果不是在恰当位置,也表示其字符本身。为避免混淆建议大家在范围集中匹配特殊字符时,统一加上 转义符 \。 如 [^.] 表示匹配 ^ 或 .

范围集用来匹配中文字符区间,为了避免篇幅过长,我们把它放在特殊字符篇讲解。

\转义特殊字符
如果要匹配[、*等特殊字符,需要加入一个转义符:\即可。转义符也可加在范围字符中如[-] 表示一个普通的 - 。

请匹配文中正确的车牌号码
普通车牌特征:
1.第1位是表籍贯的汉字
2.第2位是表城市的大写字母,不包括I和O。因为容易和数字0和1混淆
3.后5位是字母加数字,也不包括I和O
提示:如何表示除IO之外的字母呢?
小技巧:后5位字符范围都是一样,如果不想重复写,可在范围集后面加个{5}试试。

正则:/[湘皖鲁][A-HJ-NP-Z][A-HJ-NP-Z0-9]{5}/gm

湘C4VQR6
湘G9NRCE
湘A3EWAY
湘D4U9U5
湘C6FBKN
湘A0Z5VK
湘D2HQUS
皖DOCLYJ
皖E74V7I
皖E9T3RK
皖11WEIZ
鲁C67RSN
鲁C8WU2C
鲁E2S1EF
A湘418KB
鲁P9RNA7
鲁B1ETSP
鲁C195ES
N鲁5FSTV
鲁Z140YQ
posted @ 2022-10-31 22:05  求道之愚者  阅读(141)  评论(0)    收藏  举报