本文最后更新于 108 天前,其中的信息可能已经有所发展或是发生改变。
用了很久文本操作后,发现正则表达式可以精简大量代码,所以本人打算今天来学习一下正则表达式
温馨提示:下列知识都是相互串联的,请大致浏览后再开始正式学习,本文只是将参考文章中的知识进行了精简和重新布局顺序
参考文章:正则表达式 – 语法 | 菜鸟教程 (runoob.com)
正则调试:正则表达式测试实例 | 菜鸟教程 (runoob.com)
表达式简介
正则表达式是一种强大的文本处理工具,允许你在文本中搜索、替换、提取和验证特定的模式。
表达式语法
单字符正则(限定符)
+
:前面的单字符可以出现一次或多次。*
:前面的单字符可以出现零次、一次或多次。?
:前面的单字符可以出现零次或一次。{n}
:前面的单字符必须出现恰好n
次。{n,m}
:前面的单字符至少出现n
次,最多出现m
次。{n,}
:前面的单字符至少出现n
次。
字符串正则
[...]
:匹配括号内的任何一个字符。如果第一个字符是^
,则匹配不在括号内的字符。-
:在方括号内时用于定义一个范围,例如[a-z]
。- 如果方括号内的范围是字母,它们应该按照字典顺序排列;如果是数字,则按照数值大小排列。
常用字符
\w
:表示任意字母、数字或下划线(相当于[A-Za-z0-9_]
)\d
:表示任意数字(相当于[0-9]
)。
非打印字符
\cx
:匹配由x
指定的控制字符,例如\cM
匹配回车符。\f
:匹配换页符。\n
:匹配换行符。\r
:匹配回车符。\s
:匹配任何空白字符(相当于[ \t\n\r\f\v]
)。\S
:匹配任何非空白字符(相当于[^ \t\n\r\f\v]
)。\t
:匹配制表符。\v
:匹配垂直制表符。.
:匹配除了换行符之外的任何字符。
简单的综合
[AbC]
:匹配 “A”、”b” 或 “C”。[^AbC]
:匹配除了 “A”、”b” 或 “C” 之外的任何字符。[A-Z]
:匹配大写字母 A 到 Z。[a-z]
:匹配小写字母 a 到 z。[A-z]
:匹配大小写字母 A 到 z。[\S\s]
:匹配任何字符(包括空白字符)。[\w]
:匹配任何字母、数字或下划线。[\d]
:匹配任何数字。
正则修饰符
g
:全局匹配,查找所有匹配项。i
:忽略大小写。m
:多行模式,改变^
和$
的行为。s
:使.
匹配包括换行符在内的任何字符。
示例
a+b
:匹配一个或多个a
后面跟着一个b
。a*b
:匹配零个或多个a
后面跟着一个b
。a?b
:匹配零个或一个a
后面跟着一个b
。a{3}b
:匹配三个a
后面跟着一个b
。a{2,4}b
:匹配两到四个a
后面跟着一个b
。a{2,}b
:匹配至少两个a
后面跟着一个b
。
使用的技巧
- 分组:使用圆括号
()
来创建一个捕获组。 - 非捕获组:使用
(?:...)
来创建一个非捕获组。 - 选择:使用
|
来表示“或”关系,例如cat|dog
。 - 转义:对于特殊字符,如
.
、*
、+
等,使用\
来转义。
以上文章若有不足之处欢迎指出,非常感谢各位大佬阅读此文章