A Mirror的博客

不许说话不许笑 [手动滑稽]

0%

【半成品】正则表达式

本文为半成品

最开始的一些内容

本文侧重于介绍正则表达式的基本思路以及语法。

正则表达式中语法多样,想对每条规则都准确记忆,除非大量、频繁地使用,否则基本不可能。

记忆所有语法,是一件性价比很低的事情。个人认为,没有必要记住所有,只需要记忆常用语法即可。

从例子开始,理解例子之后再自己对例子进行修改、尝试,是学习正则表达的最好方法。

推荐在学习的同时,随便搜索一个“正则表达式在线测试”一类的工具,作为辅助。

在线测试工具举例

正则表达式是什么

一种用于描述、匹配文中全部匹配指定格式的字符串的语法。功能与通配符相似,但比通配符描述方式更多样、更准确。

场景

邮箱匹配,密码合法性检查,伪静态规则,提取字符串等等。

基本思路

将字符逐个对照进行匹配,且大小写敏感。

对于运算符,如+ . 等,作用范围为单个字符或字符集。

例如:

(ab)+用于匹配>=1个”ab”;

ab+用于匹配在a之后同时出现>=1个”b”的字符串。

需要转义的字符

$()*+.[\?^{|

这些字符都是有特殊含义的,所以如果要匹配这些字符,需要进行转义。

例如:

匹配 “*” 需要用 “*”

普通字符

多数情况下,反义以^[a-z][^a-z])或大写(\d\D)来表示。

字符 含意
[a-z] 匹配所有小写字母
[^a-z] 匹配所有非小写字母
[A-Z] 匹配所有大写字母
[^A-Z] 匹配所有非大写字母
\d 匹配一个数字字符,等价于[0-9]
\D 匹配一个非数字字符,等价于[^0-9]
\w 匹配字母、数字、下划线
\W 匹配非字母、数字、下划线,等价于[^a-zA-Z0-9_]

非打印字符

字符 含意
\n 匹配一个换行符
\r 匹配一个回车符
\f 匹配一个换页符
\s 匹配一个空白字符
\S 匹配一个非空白符
\t 匹配一个制表符
\v 匹配一个垂直制表符

限定符

字符 含意
* 之前的字符出现>=0次,等价于{0,}
+ 之前的字符出现>=1次,等价于{1,}
? 之前的字符出现1次或0次,等价于{0,1}
{n} 之前的字符出现n次
{n,} 之前的字符出现>=n次
{n,m} 之前的字符出现>=n,<=m次

定位符

字符 含意
^ 匹配开始位置
$ 匹配结束位置
\b 匹配单词边界
\B 匹配非单词边界
感谢您的支持!