首页 > 编程 > Python > 正文

详解Python中的正则表达式

2020-02-15 22:15:37
字体:
来源:转载
供稿:网友

一、正则表达式简介

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

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

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

二、字符匹配

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

>>> re.findall("alexsel","gtuanalesxalexselericapp")['alexsel']>>> re.findall("alexsel","gtuanalesxalexswxericapp")[]>>> re.findall("alexsel","gtuanalesxalexselwupeiqialexsel")['alexsel', 'alexsel']

2.元字符: .   ^   $   *   +   ?   { }   [ ]   |   ( )  /

•.   :匹配一个除了换行符任意一个字符    

>>> re.findall("alexsel.w","aaaalexselaw")['alexselaw']#一个点只能匹配一个字符

•^  :只有后面跟的字符串在开头,才能匹配上

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

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

>>> re.findall("alexsel$","alexselseguanalesxalexselganapp")[]>>> re.findall("alexsel$","alexselgtaanalesxalexsssiqialexsel")['alexsel']

•*  :它控制它前面那个字符,他前面那个字符出现0到多个都可以匹配上

>>> re.findall("alexsel*","aaaalexse")['alexse']>>> re.findall("alexsel*","aaaalexsel")['alexsel']>>> re.findall("alex*","aaaalexsellllll")['alexsellllll']  

•+ :匹配前面那个字符1到多次

>>> re.findall("alexsel+","aaaalexselll")['aleselll']>>> re.findall("alexsel+","aaaalexsel")['alexsel']>>> re.findall("alexsel+","aaaalexse")[]  

•? :匹配前面那个字符0到1个,多余的只匹配一个

>>> re.findall("alexsel?","aaaalexse")['ale']>>> re.findall("alexsel?","aaaalexsel")['alexsel']>>> re.findall("alexsel?","aaaalexsellll")['alexsel']            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表