初识正则表达式

一,什么是正则表达式

  正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
二,正则表达式的用法
  1.基本匹配模式
  字母,数字直接匹配(字母区分大小写)
  .(小数点)可匹配除了\r和\n之外的字符
  ^ 匹配输入字符串开始的位置
  $ 匹配输入字符串结束的位置
  2.用方括号查找某个范围内的字符                                                                               
[xyz] 字符集

匹配包含的任意字符

[^xyz] 反向字符集

匹配未包含的任何字符

[a-z] 字符范围

匹配指定范围内的任何字符

[^a-z] 反向字符范围

匹配不在指定范围内的任何字符

[x|y] 查找任何x或y

[abc|def]等同于[abcdef]

 

 

 

 

 

 

 

3.元字符

常用

\d 数字字符匹配 等效于[0-9]
\D 非数字字符匹配 等效于[^0-9]
\n 换行符匹配 可以类比c语言中的格式控制
\r 回车符匹配  
\v 垂直制表符匹配  
\t 制表符匹配  
\f 换页符匹配  
\s 匹配任何空白字符 等效于[\n\r\v\t\f]
\S 匹配任何非空白字符 等效于[^\n\r\v\t\f]
\b 匹配一个边界字符  
\B 匹配一个非边界字符  
\w 匹配任何字类字符 等效于[A-Za-z0-9_]
\W 匹配任何非字类字符 等效于[^A-Za-z0-9_]

 

  

 

 

 

 

 

 

 

如果要匹配包括\r\n在内的任意字符可以用[\s\S][\w\W][\b\B]

不常用

\cx 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符
\xn  匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。
\num  匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\1”匹配两个连续的相同字符。
\nm  标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若nm均为八进制数字(0-7),则\nm将匹配八进制转义值nm
\nml  如果n为八进制数字(0-7),且ml均为八进制数字(0-7),则匹配八进制转义值nml
\un  匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。

 

4.限定符

* 零次或多次匹配前面的字符或子表达式
+ 一次或多次匹配前面的字符或子表达式
? 零次或一次匹配前面的字符或子表达式
{n} 正好匹配n次(n ≥ 0)
{n,m} 匹配n次到m次(0 ≤ n ≤ m)(,与m之间不能有空格)
{n,} 至少匹配n次(n ≥ 0)
posted on 2018-11-16 09:46  小笼包!  阅读(124)  评论(0)    收藏  举报