一种用于模式匹配和搜索文本的工具,可以灵活且强大的方式来查找、替换、验证、和提取文本数据,它可以应用于多种语言,JavaScript、Python、Java等。
语法
正则表达式由普通字符与特殊字符组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。
普通字符
例:字符串 Hello Word
[ABC]:匹配[...]中的所有字符。如:[her] :匹配字符串中所有的h、e、r字母
[^ABC] :匹配除了[...]中的所有字符。如:[^her] 匹配的是llo Wod
[A-Z]:匹配一个区间,匹配所有大写字母,[a-z]:匹配所有小写字母;[0-9]:匹配数字0~9
.:匹配除换行符外的任何单个字符
[\s\S]:\s:匹配所有空白字符 \S匹配所有非空白字符
\w:匹配字母、数字、下划线
\d:匹配任意一个阿拉伯数字
非打印字符
\cx:匹配由x指明的控制字符。如:\ca表示匹配一个Control-A或回车符。具体可以参考ASCII控制字符与\cx是什么意思
\f:匹配一个换页符,相当于\cl
\n:匹配一个换行符
\r:匹配一个回车符
\t:匹配一个制表符
\v:匹配一个垂直制表符
特殊字符
$:匹配输入字符串的结尾位置
():匹配一个子表达式的开始与结束,可以获取以供使用
*:匹配前面子表达式多次或0次
+:匹配前面子表达式一次或多次
.:匹配除换行 符外的任何单字符
[:标记一个中括号表达式的开始
?:匹配前面子表达式零次或一次,或指明一个非贪婪限定符
\:将下一个字符标记为或特殊字符、或元字符、或向后引用、或八进制转义符
^:匹配输入字符串开始的位置,在方括号中表示非方括号表达式集合。
{:表示限定符表达式的开始
|:指明两项之间的一个选择
限定符
表示正则表达式的一个给定组件必须出现多少次才能满足匹配
*:匹配前面子表达式多次或0次,等价于{0,}
+:匹配前面子表达式一次或多次,等价于{1,}
?:匹配前面子表达式零次或一次,等价于{0,1}
{n}:n是非负整数。匹配n次
{n,}:匹配至少n次
{n,m}:n<m至少匹配n次,最多匹配m次