正则表达式

正则

Posted by mr_king on July 20, 2020

正则表达式

  • 1.行定位符(^和$) ^表示行的开始; $表示行的结束;
  • 2单词定界符(\b、\B) \b匹配一个完整的单词,如\btm\b,就是匹配tm这个单词; \B匹配的字符串不是完整的单词,而是单词的一部分;
  • 3.字符类([ ]) 正则表达式区分大小写,[]可以用来忽略大小写,但注意,一个方括号只能匹配一个字符。 例如匹配字符串tm不区分大小写,格式:[Tt][Mm];

表格如下: | [:digit;] | 十进制数字集合。等同于[0-9] | | ———– | ———————————– | | [[:alnum:]] | 字母和数字的集合。等同于[a-zA-Z0-9] |

| [[;alpha;]] | 字母集合。等同于[a-zA-Z] | | ———— | —————————————————- | | [[:blank:]] | 空格和制表符 | | [[:xdigit:]] | 十六进制数字 | | [[punct:]] | 特殊字符集合。包括键盘上所有的特殊字符 | | [[:print:]] | 所有的可打印字符(包括空白字符) | | [[:space:]] | 空白字符(空格、换行符、换页符、回车符、水平制表符) | | [[:graph:]] | 所有的可打印字符(不包括空白字符) | | [[:upper:]] | 所有大写字母,[A-Z] | | [[:lower:]] | 所有小写字母,[a-z] | | [[:cntrl:]] | 控制字符 |

  • 4.选择字符 (|); 选择字符可以理解为“或”,如 (T|t)(M|m) 表示以字母T或者t开头,后接一个字母M或者m,还可以写成TM|tm|Tm|tM
  • 5.连字符(-) 连字符“-”表示字符的范围;[a-zA-Z]
  • 6.排除字符([^]) 匹配不符合命名规则的变量名; 如:[^a-zA-Z] 该表达式匹配的是不以下划线和字母开头的变量名;
    • 7.限定符(? * + {n,m}) **
  • ** - **限定字符的说明和举例**

| 限定符 | 说明 | 举例 | | —— | ————————– | ————————————– | | ? | 匹配前面的字符0次或者一次 | colou?r,可以匹配colour和color | | + | 匹配前面的字符一次或者多次 | go+gle,可以匹配gogle到goo…gle | | * | 匹配前面的字符0次或者多次 | go*gle,可以匹配ggle到goo…gle | | {n} | 匹配前面的字符n次 | go{2}gle,表示只匹配google | | {n,} | 匹配前面的字符最少n次 | go{2,}gle,表示匹配从google到goo…gle | | {n,m} | 匹配前面的字符最n次最多m次 | employe{0,2},表示匹配employ、employe和employee三种情况; |

  • 8.点号字符( . ) 题目:写出5~10个以s开头t结尾的单词; 在正则表达式中可以通过点字符(.)来实现匹配。点字符(.)可以匹配出除换行符以外任意一个字符: 格式如下:^s.t$ 匹配为:sat、set、sit等。 例:匹配一个单词,他的第一个字母为r,第三个字母为s,最后一个字母为t ^r.s.*t$;

  • 9转义字符 将特殊字符转义为普通字符(“.”、“?”、“\”等) 举例:IP:127.0.0.1,如果直接使用点字符,格式为:[0-9]{1,3}(.[0-9]{1,3}){3},这显然是不对的,因为“.”可以匹配一个任意字符。这时不仅是127.0.0.1,这样的IP,连127101011这样的也会匹配。所以在使用转义字符(\)的同时需要和“.”配合: 格式为:[0-9]{1,3}(.[0-9]{1,3}){3}
  • 10 反斜杠 除了可以做转义字符外,反斜杠好友其他一些功能。 -(1) 反斜杠可以将一些不可以打印的字符显示出来。
    • (2)指定预定义字符,如:
    • (3)定义断言,如:
    • 11.括号字符() 作用:改变限定符的范围,如“|”、“*”、“^”等。来看下面的一个表达式。、 (tir|four)th:表达匹配单词tirth或者fourth,如不使用小括号就会匹配thir和fourth这两个单词。 第二个作用分组,也就是子表达式。如(.[0-9]{1,3}}){3},,也就是对分组(.[0-9]{1,3}})进行重复操作。
      • 12 反向引用