Python中详解的正则表达式

  

  

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了再保险模块,它提供Perl风格的正则表达式模式。

  

就其本质而言,正则表达式(或再保险)是一种小型的,高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过再保险模块实现。正则表达式模式被编译成一系列的字节码,然后由用C语言编写的匹配引擎执行。

  

再保险模块使Python语言拥有全部的正则表达式功能。编译函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。再保险模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

  

  

1。普通字符:大多数字符和字母都会和自身匹配

        在在在re.findall (“alexsel”、“gtuanalesxalexselericapp”)   (“alexsel”)   在在在re.findall (“alexsel”、“gtuanalesxalexswxericapp”)   []   在在在re.findall (“alexsel”、“gtuanalesxalexselwupeiqialexsel”)   [' alexsel ', ' alexsel ']      

2。元字符:只,^,,美元,,*,,+,,& # 63;,,{},,[],,|,,(),\

  

& # 8226;只,:匹配一个除了换行符任意一个字符

        在在在re.findall (“alexsel.w”、“aaaalexselaw”)   (“alexselaw”)   #一个点只能匹配一个字符   
     ^

& # 8226;:只有后面跟的字符串在开的头,才能匹配上

        在在在re.findall (“^ alexsel”、“gtuanalesxalexselgeappalexsel”)   []   在在在re.findall (“^ alexsel”、“alexselgtuanalesxalexselwgtappqialexsel”)   (“alexsel”)   #“^”这个符号控制开头,所以写在开头   
     

& # 8226; $,:只有它前面的字符串在检测的字符串的最后,才能匹配上

        在在在re.findall (“alexsel $”,“alexselseguanalesxalexselganapp”)   []   在在在re.findall (“alexsel $”,“alexselgtaanalesxalexsssiqialexsel”)   [' alexsel ']   
     *

& # 8226;:它控制它前面那个字符,他前面那个字符出现0到多个都可以匹配上

        在在在re.findall (“alexsel *”、“aaaalexse”)   (“alexse”)   在在在re.findall (“alexsel *”、“aaaalexsel”)   (“alexsel”)   在在在re.findall(“亚历克斯*”、“aaaalexsellllll”)   [' alexsellllll ']      

& # 8226; +:匹配前面那个字符1到多次

        在在在re.findall (“alexsel +”、“aaaalexselll”)   (“aleselll”)   在在在re.findall (“alexsel +”、“aaaalexsel”)   (“alexsel”)   在在在re.findall (“alexsel +”、“aaaalexse”)   []      

& # 8226;吗?匹配前面那个字符0到1个,多余的只匹配一个

        在在在re.findall (“alexsel& # 63;”、“aaaalexse”)   (“啤酒”)   在在在re.findall (“alexsel& # 63;”、“aaaalexsel”)   (“alexsel”)   在在在re.findall (“alexsel& # 63;”、“aaaalexsellll”)   [' alexsel ']      

& # 8226; {},:控制它前面一个字符的匹配个数,可以有区间(闭区间),有区间的情况下按照多的匹配

        在在在re.findall (“alexsel {3}”,“aaaalexselllll”)   (“alexselll”)   在在在re.findall (“alexsel {3}”,“aaaalexsell”)   []   在在在re.findall (“alexsel {3}”,“aaaalexse”)   []   在在在re.findall (“alexsel {3}”,“aaaalexselll”)   (“alexselll”)   在在在re.findall (“alexsel {3、5}”,“aaaalexsellllllll”)   (“alexselllll”)   在在在re.findall (“alexsel {3、5}”,“aaaalexselll”)   (“alexselll”)   在在在re.findall (“alexsel {3、5}”,“aaaalexsell”)   []      时间\

& # 8226;:

  

后面跟元字符去除特殊功能,
  ,后面跟普通字符实现特殊功能。
  ,引用序号对应的字组所匹配的字符串(一个括号为一个组)。
  在开头加上r表示不转义。

        # \ 2就相当于第二个组(eric)   在在在re.search (r”(alexsel) (eric) com \ 2”,“alexselericcomeric”) .group ()   “alexselericcomeric”   在在在re.search (r”(alexsel) (eric) com \ 1”、“alexselericcomalex”) .group ()   “alexselericcomalex”   在在在re.search (r”(alexsel) (eric) com 1 \ \ 2”,“alexselericcomalexseleric”) .group ()   “alexselericcomalexeric”

Python中详解的正则表达式