正则表达式

来自Wiki.Citydatum
Reiziuh讨论 | 贡献2018年5月26日 (六) 20:51的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
TODO
提示:该页面仍需进一步完善,欢迎加入我们

正则表达式(Regular Expression,常简写为regex、regexp)是计算机科学的一个概念,表示用字符序列代表的某种文本模式,用来检索、替换那些符合这个模式(规则)的文本。

概述

模式

主流的正则引擎主要分为3类,分别为DFA,传统型NFA,POSIX NFA。其中DFA、NFA两种引擎都经历了20多年的发展,各自产生了很多变体,出台POSIX NFA规避了不必要变体的继续产生。

符号

正则表达式由普通字符元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。

元字符 作用 描述 示例
. 通配符 匹配除换行符(\n)和回车符(\r)之外的任意字符 b.d 可匹配bed、bid、b8d等;
[ ] 集合 匹配集合中的任意字符 [abc][123]
[ - ] 范围 出现在两个字符之间时表示范围,匹配该范围内任意字符 [a-z]匹配任意小写英文字母;[1-9]匹配任意一位正整数
[^ ] 取反 匹配任何不在指定范围内的任意字符 [^xyz]匹配除x、y、z以外的任意字符
{m,n} 量化 匹配前面的子表达式至少m次且最多n次 a{3,5}可匹配aaa、aaaa、aaaaa
? 量化 匹配前面的子表达式零次或一次,等价于{0,1} colou?r 可匹配 color 及 colour
* 量化 匹配前面的子表达式任意次,等价于{0,} ab*c 可匹配 ac、abc、abbc、abbbc等
+ 量化 匹配前面的子表达式一次或多次,等价于{1,} ab+c 可匹配 abc、abbc、abbbc等,但不能匹配 ac
| 逻辑“或” 将两个匹配条件进行逻辑“或”(Or)运算 gray|grey 可匹配 gray 或 grey
( ) 括号内的表达式为“组”(group) gr(a|e)y 等价于 gray|grey
^ 位置 匹配字符串起始位置,多行模式下也可匹配各行行首
$ 位置 匹配字符串结束位置,多行模式下也可匹配各行行尾
\ 转义 匹配特殊字符或被用作“元字符”的符号

应用

上手

参考链接