Bootstrap

正则表达式入门

一次搞定正则表达式

前言

​ 在写这篇笔记之时,已经有很多与正则表达式有关的优秀博客了,我的学习也参考了不少优秀大佬的博客,甚至我觉得直接搬运他们写的博客还要好些,但自己动动手写一写的话可以学习理解的更加透彻,不仅要让自己看得懂,还得让自己写的来才行,所以在学习正则表达式时写下了这篇笔记。

概念

使用单个字符串来描述、匹配一系列符合某个句法规则的字符串

正则表达式的测试工具

一、基础字符

元字符

最基础的东西,相当于英文的26个字母

代码/语法 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字[A-Z][a-z][0-9]_
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束,其他类型的数据也能匹配
^ 匹配字符串的开始
$ 匹配字符串的结束

补充一点方便理解:

代码/语法 说明
| 条件分支或,指明两项或多项之间的一个选择
( ) 多个匹配,将括号里面的内容作为一
[ ] 单个匹配,满足其中一个匹配即可
0\d{2}-\d{8}|0\d{3}-\d{7}
这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)

反义字符

与元字符相反的字符

代码/语法 说明
\W 匹配任意不是字母,S数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

限定字符

限定需要匹配的字符长度来达到重复匹配

代码/语法 说明 举例
* 重复零次或更多次 zo*能匹配 z
;