一种用于模式匹配和搜索文本的工具,可以灵活且强大的方式来查找、替换、验证、和提取文本数据,它可以应用于多种语言,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控制字符](https://baike.so.com/doc/235350-248973.html)与[\\cx是什么意思](https://blog.csdn.net/qq_35577655/article/details/90047428)
\\f:匹配一个换页符,相当于\\cl
\\n:匹配一个换行符
\\r:匹配一个回车符
\\t:匹配一个制表符
\\v:匹配一个垂直制表符
### 特殊字符
$:匹配输入字符串的结尾位置
():匹配一个子表达式的开始与结束,可以获取以供使用
\*:匹配前面子表达式多次或0次
+:匹配前面子表达式一次或多次
.:匹配除换行 符外的任何单字符
\[:标记一个中括号表达式的开始
?:匹配前面子表达式零次或一次,或指明一个非贪婪限定符
\\:将下一个字符标记为或特殊字符、或元字符、或向后引用、或八进制转义符
\^:匹配输入字符串开始的位置,在方括号中表示非方括号表达式集合。
{:表示限定符表达式的开始
\|:指明两项之间的一个选择
### 限定符
表示正则表达式的一个给定组件必须出现多少次才能满足匹配
\*:匹配前面子表达式多次或0次,等价于{0,}
+:匹配前面子表达式一次或多次,等价于{1,}
?:匹配前面子表达式零次或一次,等价于{0,1}
{n}:n是非负整数。匹配n次
{n,}:匹配至少n次
{n,m}:n\