正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

正则的目的:给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

  1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

正则表达式普通字符特殊字符(也称为元字符)组成的文字模式。

普通字符:
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

非打印字符:
(1)\cx :匹配由x知名的控制字符;
例如:\cA, 就是ctrl+A,即全选,当然,要是X必须为A-Z(a-z)的范围
(2)\f :匹配一个换页符,换页符也就是word中的ctrl+enter;
(3)\r :匹配一个回车符
(4)\n :匹配一个换行符
(5)\s :匹配任何空的字符,包括空格、制表符、换页符等等,即等于
[\f\r\n\s];空的字符可以用打印显示,一般对于制表符打印出来便是"";
(6)\t :垂直制表符

特殊字符:
$:匹配输入字符串的结尾位置
():标记一个子表达式的开始位置和结尾位置
*:匹配前面的子表达式0次或者多次
+: 匹配前面子表达式1次或者多次,至少得有一次
. : 匹配除换行符\n之外的任何单字符
[ : 标记一个中括号表达式的开始
? :匹配前面子表达式0次或者1次,即至多一次
\ :将下一个字符进行转义,比如要匹配$这个字符,就需要写成\$
^ : 匹配输入字符串的开始位置,这个字符要分为两类,一类是在[]中使用,在中括号内,取反,比如[^a],匹配除了a以外的字符串,另一类是在[]外使用,就是这里所说的意思,开始位置。
{ : 标记限定符表达式的开始位置
| : 或,即选择,比如a | b即a或者b,其中的一个
\d :匹配0-9,即[0-9]数字中的一个
\D: 匹配非数字,即[^0-9]取反

限定符:
用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配
一共有六种, +, *, ?, {n}, {n,}, {n,m}
* : 匹配0次或者多次, 比如ab*, 可匹配到a, ab, abb, abb;
+ : 匹配1次或者多次,比如ab+, 可以匹配到ab, abb,但是不能匹配a;
?:匹配 0次或者1次,比如ab?, 可以匹配到a, ab,但是不能匹配abb;
{n} :精确匹配n次,比如ab{2}, 只能匹配abb;
{n,}:至少匹配n次,比如ab{2,}, 可以匹配到, abb, abbb;
{n,m}:至少匹配n次,至多匹配m次,比如ab{2,4},可以匹配到abb, abbb. abbbb;

定位符:
将正则表达式固定在行首或者行尾
^ : 匹配输入的字符串的开始位置
$ : 匹配输入字符串的结束位置
\b : 单词的边界,即字与空格之间的位置
\B : 非单词的边界
注意:不能将限定符和定位符放在一起使用,比如 ^?, ^*等等

基础语法:
基础语法 “^([]{})([]{})([]{})$”
正则字符串 = “开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束”
字符串:tel:086-0666-88810009999
原始正则:"^tel:[0-9]{1,3}-[0][0-9]{2,3}-[0-9]{8,11}$"
等价简写后正则写法:"^tel:\d{1,3}-[0]\d{2,3}-\d{8,11}$"