zoukankan      html  css  js  c++  java
  • Python正则表达式

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

    Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

    re 模块使 Python 语言拥有全部的正则表达式功能。

    compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

    re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

    本章节主要介绍Python中常用的正则表达式处理函数。

    1 import re
    2 
    3 re.match #从开始位置开始匹配,如果开头没有则无
    4 
    5 re.search #搜索整个字符串
    6 
    7 re.findall #搜索整个字符串,返回一个list

    举例:

    1 r(raw)用在pattern之前,表示单引号中的字符串为原生字符,不会进行任何转义
    2 
    3 re.match(r'l','liuyan1').group()  #返回l
    4 
    5 re.match(r'y','liuyan1')  #返回None
    6 
    7 re.search(r'y','liuyan1').group() #返回y

    正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:

     1 re.I    #使匹配对大小写不敏感
     2 
     3 re.L    #做本地化识别(locale-aware)匹配
     4 
     5 re.M    #多行匹配,影响 ^ 和 $
     6 
     7 re.S    #使 . 匹配包括换行在内的所有字符
     8 
     9 re.U    #根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
    10 
    11 re.X    #该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
     1 re.search(r'[a-z]+','liuyaN1234ab9').group() #返回'liuya'
     2 
     3 re.search(r'[a-z]+','liuyaN1234ab9', re.I).group() #返回'liuyaN',对大小写不敏感
     4 
     5 #如果匹配成功,则打印m,否则返回Null
     6 if re.match(r'[0-9]','a'):print 'm'
     7 
     8 #用空格分割
     9  re.split(r'\s+', 'a b   c')
    10 
    11 返回:['a', 'b', 'c', 'd']
    12 #用逗号分隔
    13 re.split(r'[\s\,]+', 'a,b, c  d')
    14 返回:['a', 'b', 'c', 'd']
    15 rr=re.match(r'[0-9]','3')
    16 
    17 rr.group(0)
  • 相关阅读:
    Visual C#核心编程之泛型
    Visual C#核心编程之枚举器
    标准的非托管资源的销毁模式
    Visual C#核心编程之LINQ
    Visual C#核心编程之数组和集合
    ACCPSQL第四章上机六
    Visual C#2008核心编程之类型
    一月一代码 3月 kmp 领悟代码
    [转] 技巧 如何统一设置 windows live writer 的 图片大小
    understanding the linux virtual memory management 图序
  • 原文地址:https://www.cnblogs.com/zyq6/p/11574450.html
Copyright © 2011-2022 走看看