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

     正则表达式是由普通字符及特殊字符(称为元字符)组成的文字模式,元字符(包含特殊含义,如果要作为普通字符使用,则需要转义)包括:. ^ $ + ? { } [ ] | ( ) 。例如:

    "Go"   # 匹配字符串"Good Good"中的"Go"
    "G.d"  #匹配字符串"Good Good"中的"God",  . 为元字符,匹配除行终止符外的任何字符
    "d $"   #匹配字符串"Good Good"中的最后一个"d",$ 为元字符,匹配结尾   

    python的re模块实现了正则表达式处理的功能。导入re模块后,使用findall、search函数可以进行匹配:

    re.findall(pattern,string): 返回匹配结果列表
    re.search(pattern,string):如果匹配,返回Match对象,否则返回None。

    例如:

    >>> import re   #导入re模块
    >>> re.findall('d','godness')
    ['d']

    正则表达式中包含你特殊字符,例如: 表示单词边界;而字符串中的转义字符  表示退格字符。因此在正则表达式中,这些与标准转义字符重复的特殊符号必须使用两个反斜线字符('\'),或者使用原始字符串(r" ") 或 (r' ')。

    >>> re.findall("on","only on air")
    []
    >>> re.findall("\bon\b","only on air")
    ['on']
    >>> re.findall(r"on","only on air")
    ['on']

    字符类是由一对方括号[ ]括起来的字符集合,正则表达式引擎匹配字符集中的任意一个字符。字符类的定义方式包括以下几种。

    [xyz]:枚举字符集,匹配括号中的任意字符。例如,“t[aeio]n”匹配“tan”、"ten"、"tin"、"ton"。

    [^xyz]:否定枚举字符集,匹配不在此括号中的任意字符。

    [a-z]:指定范围的字符,匹配指定范围的任意匹配。

    [^a-z]:指定范围以外的字符,匹配指定范围以外的任意字符。

    例如:
    >>> re.findall("fo[xr]","the quick brown fox jumps for food")
    ['fox', 'for']

     常用的预定义字符类

    预定义字符 说明
    . 除行终止符外的任何字符
    d 数字。等价于[0-9]
    D 非数字。等价于[^0-9]
    s 空白字符。等价于[ fv]
    S 非空白字符。等价于[^ fv]
    w 单词字符。等价于[a-zA-Z0-9]
    W 非单词字符。等价于[^a-zA-Z0-9]
  • 相关阅读:
    hdu 2485 Destroying the bus stations 迭代加深搜索
    hdu 2487 Ugly Windows 模拟
    hdu 2492 Ping pong 线段树
    hdu 1059 Dividing 多重背包
    hdu 3315 My Brute 费用流,费用最小且代价最小
    第四天 下载网络图片显示
    第三天 单元测试和数据库操作
    第二天 布局文件
    第一天 安卓简介
    Android 获取存储空间
  • 原文地址:https://www.cnblogs.com/zhangzimu/p/8404540.html
Copyright © 2011-2022 走看看