澳门游戏平台大全 电子游戏平台 学习正则表达式笔记

学习正则表达式笔记

学习正则表达式笔记(二),学习正则表达式笔记

正则匹配的各种模式

正则匹配的各种模式

1.择一匹配(|)

  择一匹配用管道符号(|),也就是竖线表示。代表可以从多个模式中选择一个,可用于分割正则表达式。例如:
ABC | abc 表示即可以匹配 ABC,又可以匹配 abc。

1.择一匹配(|)

  择一匹配用管道符号(|),也就是竖线表示。代表可以从多个模式中选择一个,可用于分割正则表达式。例如:
ABC | abc 表示即可以匹配 ABC,又可以匹配 abc。

2.匹配任意单个字符

  1. 点号(.)可以匹配除换行符 n
    以外的任意字符,无论是空格,字母,数字,可打印字符、不可打印字符,还是一个符号,使用点号都能够匹配它们。
  2. 在Python中,如果使用模块属性re.S
    也就是 re.DOTALL,那么换行符 n 也可以匹配了。

2.匹配任意单个字符

3.从字符串起始或者结尾或者单词边界匹配

  1. 要匹配字符串的开始位置,可以使用脱字符(^)或者特殊字符
    A 。例如:^start,匹配从start开始。
  2. 要匹配字符串的结束位置,可以使用美元符号($)或者
    Z 。例如:end$,匹配以end结束。
  3. 特殊字符b 和B
    可以用来匹配字符边界。区别在于b
    用于匹配一个单词的边界,即如果一个模式必须位于单词的起始部分,就不管该单词前面是否有任何字符。同样,B
    将匹配出现在一个单词中间的模式。

  例如:

  •   bthe,匹配以
    the开头的字符串。
  •   btheb,仅仅匹配单词
    the。
  •   Bthe, 任何包含但并不以 the
    作为起始的字符串

3.从字符串起始或者结尾或者单词边界匹配

  例如:

  •   bthe,匹配以 the开头的字符串。
  •   btheb,仅仅匹配单词 the。
  •   Bthe, 任何包含但并不以 the 作为起始的字符串

4.字符集

  使用方括号表示字符集,可以匹配字符集中的任意符号。例如:b[aeiu]t,可以匹配 bat、bet、bit、but。

4.字符集

  使用方括号表示字符集,可以匹配字符集中的任意符号。例如:b[aeiu]t,可以匹配 bat、bet、bit、but。

5.限定范围和否定

  1. 使用 –
    连接字符,表示匹配两个字符之间的任意字符。例如:
    1-9,A-Z,分别用于表示数值数字、大写字母。
  2. 在方括号中的字符前加
    ^,表示否定,不匹配 ^
    之后的字符,例如:[^aeiou],表示一个非元音字符。

5.限定范围和否定

6.特殊符号*、+和?

   1. 星号操作符(*)将匹配其左边的正则表达式
出现零次或者多次的情况。

  2.加
号(+)操作符将匹配一次或者多次出现的正则表达式。

  3.问号(?)
操作符将匹配零次或者一次出现的正则表达式。也叫做非贪婪匹配。

6.特殊符号*、+和?

7. 使用圆括号指定分组

  一对圆括号可以实现以下任意一个(或者两个)功能:1.对正则表达式进行分组;2.匹配子组。

7. 使用圆括号指定分组

  一对圆括号可以实现以下任意一个(或者两个)功能:1.对正则表达式进行分组;2.匹配子组。

8.扩展表示法

  扩展表示法时以问号开始(?…)的。通常用于在判断匹配之前提供标记,实现一个前视(或者后视)匹配,或者条件检查。尽管圆括号使用这些符号,但是只有(?P<name>)表述一个分组匹配。所有其他的都没有创建一个分组。

正则表达式模式                 
匹配的字符串

(?:w+.)*              
以句点作为结尾的字符串,例如“google.”、“ twitter.”、“
facebook.”,但是这些匹配不会保存下来 供后续的使用和数据检索。

(?#comment)       
此处并不做匹配,只是作为注释。

(?=.com)              
如果一个字符串后面跟着“.com”才做匹配操作,并不使用任何目标字符串。

(?!.net)                 
如果一个字符串后面不是跟着“.net”才做匹配操作。

(?<=800-)             
如果字符串之前为“800-”才做匹配,假定为电话号码,同样,并不使用任何输入字符串。

(?<!192.168.)     
如果一个字符串之前不是“192.168.”才做匹配操作,假定用于过滤掉一组 C 类 IP
地址。

(?(1)y|x)                如果一个匹配组
1(1)存在,就与 y匹配;否则,就与 x 匹配。

 

8.扩展表示法

  扩展表示法时以问号开始(?…)的。通常用于在判断匹配之前提供标记,实现一个前视(或者后视)匹配,或者条件检查。尽管圆括号使用这些符号,但是只有(?P<name>)表述一个
分组匹配。所有其他的都没有创建一个分组。

正则表达式模式                  匹配的字符串

(?:w+.)*               以句点作为结尾的字符串,例如“google.”、“
twitter.”、“ facebook.”,但是这些匹配不会保存下来
供后续的使用和数据检索。

(?#comment)        此处并不做匹配,只是作为注释。

(?=.com)              
如果一个字符串后面跟着“.com”才做匹配操作,并不使用任何目标字符串。

(?!.net)                  如果一个字符串后面不是跟着“.net”才做匹配操作。

(?<=800-)             
如果字符串之前为“800-”才做匹配,假定为电话号码,同样,并不使用任何输入字符串。

(?<!192.168.)     
如果一个字符串之前不是“192.168.”才做匹配操作,假定用于过滤掉一组 C 类 IP
地址。

(?(1)y|x)                如果一个匹配组 1(1)存在,就与
y匹配;否则,就与 x 匹配。

 

正则匹配的各种模式 1.择一匹配(|)
择一匹配用管道符号(|),也就是竖线表示。代表…

标签:,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图