正则表达式学习笔记(一)——字符匹配
一.匹配单个字符
0.用途
正则表达式是一种工具,主要用途是搜索变化多端的文本,匹配到我们想要的信息。
1.匹配纯文本
文本
Hello,my name is rainyn
正则表达式
rainyn
结果
Hello,my name is rainyn
2.匹配任意字符
. 匹配任意单个字符
文本
Hust
Wust
Whu
Hust1
Whu1
Hust2.zks
Whu.tzgg
正则表达式
Hust
结果
Hust
Wust
Whu
Hust1
Whu1
Hust2.zks
Whu.tzgg
分析:
能将Hust+一个字符给匹配出来,一个 . 代表任何单个字符、字母、数字、甚至是本身,可以组合使用,例如
正则表达式
.u..
匹配结果
Hust
Wust
Whu
Hust1
Whu1
Hust2.zks
Whu.tzgg
分析:能匹配 u的前面一个字符+u+后面两个字符
3.匹配特殊字符
转义字符 \
例如匹配 . 使用\. ;匹配\ 使用 \\
二.匹配一组字符
1.匹配多个字符中的某一个
使用[]可以匹配多个字符中的某一个
例如,匹配abc中的某一个字符,可以[abc]
文本
na1
na2
sa1
ca1
abmd
正则表达式
[ns]a.
结果
na1
na2
sa1
ca1
abmd
分析: 以[ns]开头,这个集合将匹配字符n或s(不匹配其他字符)。
字符集合在不需要区分大小写的搜索里比较常见,
文本
I like Eating ice creams,but Ican’t eat too much
正则表达式
[Ee]at
结果
I like Eatingice creams,but I can’t eat too much
分析: [Ee]匹配E或者e,at匹配at.这个模式可以匹配Eat或者eat ,但是不能匹配EAT
2.利用字符区间
例如
[0123456789]可以写成[0-9]
常见合法区间
[A-Z] |
匹配从A到Z的所有大写字母 |
[a-z] |
匹配从a到z的所有小写字母 |
[A-z] |
匹配所有从ASCII字符A到ASCII字符z,中间还包括一些其他的字符,例如],[,/,^等字符,不常用 |
[A-Za-z0-9] |
匹配大写A-Z,小写a-z,数字0-9的任意一个
|
3.取非
[^0-9] 匹配任何不是数字的字符