python 正则表达式简介

  1. 1. 概念:
  2. 2. 在正则表达式中, 如下的字符是具有特殊含义的
  3. 3. RE 函数用法:
  4. 4. 含义:
  5. 5. 前向界定与后向界定:
  6. 6. 组的基本知识:

1. 概念:

正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现。使用这个小型语言, 你可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、email 地址、TeX命令或任何你想搞定的东西。然后你可以问诸如“这个字符串匹配该模式吗?”或“在这个字符串中是否有部分匹配该模式呢?”。你也可以使用 RE 以各种方式来修改或分割字符串。

2. 在正则表达式中, 如下的字符是具有特殊含义的

. (所有字符)  ^  $  *(0-N次)  +(1-N次)  ? (0-1次) { } [  ]  \  |  ( ) 
   1)."[" 和 "]"。它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集
   2).其它地方的"^"只会简单匹配 "^"字符本身。例[^5] 将匹配除 "5" 之外的任意字符。
   3).反斜杠后面可以加不同的字符以表示不同特殊意义。它也可以用于取消所有的元字符

3. RE 函数用法:

   findall(rule , target [,flag] ) 在目标字符串中查找符合规则的字符串。
   match() 决定 RE 是否在字符串刚开始的位置匹配
   search() 扫描字符串,找到这个 RE 匹配的位置
   findall() 找到 RE 匹配的所有子串,并把它们作为一个列表返回
   finditer() 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回
   group() 返回被 RE 匹配的字符串
   start() 返回匹配开始的位置
   end() 返回匹配结束的位置
   span() 返回一个元组包含匹配 (开始,结束) 的位置
   compile( rule [,flag] )将正则规则编译成一个Pattern对象,以供接下来使用第一个参数是规则式,第二个参数是规则选项。(使用compile加速)

4. 含义:

预定义转义字符集: “\d”  “\w” “\s” 等等,它们是以字符’\’开头,后面接一个特定

字符的形式,用来指示一个预定义好的含义

    ‘^’  和’$’ 匹配字符串开头和结尾
    ‘.’    匹配所有字符 除\n以外
    ‘\d’  匹配数字
    ‘\D’  匹配非数字
    ‘\w’  匹配字母和数字
    ‘\W’  匹配非英文字母和数字
    ‘\s’   匹配间隔符
    ‘\S’   匹配非间隔符
    ‘\A’  匹配字符串开头
    ‘\Z’  匹配字符串结尾
    ‘\b’  只用以匹配单词的词首和词尾。单词被定义为一个字母数字序列,因此词尾就是用空白符或非字母数字符来标示的。(退格)
    ‘\B’,它正好同 \b 相反,只在当前位置不在单词边界时匹配。

5. 前向界定与后向界定:

    ‘(?<=…)’ 前向界定:括号中’…’代表你希望匹配的字符串的前面应该出现的字符串。
    ‘(?=…)’后向界定    :括号中的’…’代表你希望匹配的字符串后面应该出现的字符串
    ‘(?<!..)’前向非界定 :只有当你希望的字符串前面不是’…’的内容时才匹配
    ‘(?!...)’后向非界定  :只有当你希望的字符串后面不跟着’…’内容时才匹配。

6. 组的基本知识:

    ‘(‘’)’           无命名组            [a-z]+(\d+)[a-z]+
    ‘(?P<name>…)’    命名组                    (?P<g1>[a-z]+)\d+(?P=g1)
    ‘(?P=name)’      调用已匹配的命名组
    ‘\number’        通过序号调用已匹配的组正则式中的每个组都有一个序号,序号是按组从左到右,从1开始的数字,你可以通过下面的形式来调用已匹配的组
( r"(\d+)([a-z]+)(\d+)(\2)(\1)" )   

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 296245956@qq.com
github