zoukankan      html  css  js  c++  java
  • python学习之正则表达式


    元字符 .^$*+?{}[]|()
    . 通配符,任意一个字符
    ^ 字符串开头匹配
    $ 字符串结尾匹配

    * 紧挨着字符重复(0-无穷次)
    + 加号前面字符至少有一个(1-无穷次)
    ? (0-1)
    {} {0,} = *
    {1,} = +
    {0,1} = ?
    {6} 贪婪匹配
    注意,*,+,?,等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配

    反斜杠后边跟元字符去除特殊功能, 如.
    反斜杠后边跟普通字符实现特殊功能,如d

     匹配一个特殊字符边界,如空格,&,#

    | 或

    () 分组

    [] 字符集 中括号里没有特殊符号,特殊: ‘-’ 范围 ,‘^’ 非 ,‘’转义符

    ?P<name> (?P<name>)分组命名
    例:
    >>> re.search("(?P<name>d+)","alan39wang88liu77")
    <_sre.SRE_Match object; span=(4, 6), match='39'>
    >>> re.search("(?P<name>[a-z]+)","alan39wang88liu77").group("name")
    'alan'
    >>> re.search("(?P<name>[a-z]+)","alan39wang88liu77").group()
    'alan'
    >>> re.search("(?P<name>[a-z]+(?P<age>d+))","alan39wang88liu77").group()
    'alan39'
    >>> re.search("(?P<name>[a-z]+)(?P<age>d+)","alan39wang88liu77").group("name")
    'alan'
    >>> re.search("(?P<name>[a-z]+)(?P<age>d+)","alan39wang88liu77").group("age")
    '39'

    re.findall("^H[w]*[ w\\d]*","Hello World") 结果 ['Hello Worl\d'] #返回所有满足匹配条件的结果,放在列表里
    re.search("d+","aabdde34kdf3").group() #函数会在字符串内查找模式匹配,只找到第一个匹配
    #通过调用group()方法得到匹配的字符串,
    re.match("d+","56daffdfd").group() #同search,不过尽在字符串开始处进行匹配
    re.split('[ab]','abcd') 结果['','','cd'] #先按'a'分割到''和'bcd',在对''和'bcd'分别按'b'分割,
    re.sub("d+","a","fdfefj20303r") 结果'fdfefjar' 替换
    re.subn("d+","a","fdfefj20303rdfd4") 结果('fdfefjardfda', 2) 替换并返回替换次数
    com=re.compile("d+") com.findall('dfd4df5') 结果['4', '5'] #编译(效率提升)
    i=re.finditer("d","df3lj3ljl34ljj45l4jlj2kdjfw") 取值:next(i).group() #迭代对象,大数据匹配不用全部写入内存,用一个取一个
    re.findall("www.(?:baidu|163).com","dd2fjlsjwww.baidu.comfjldjflsj")
    结果1:['www.baidu.com'] 加上"?:"去掉分组优先级
    结果2:['baidu'] 分组优先级高

  • 相关阅读:
    爬虫之初试
    [已解决]疑问:关于postgres的to_number()
    随笔
    简单的任意列数均匀布局
    去除VS2010中中文注释下的红色波浪线
    DataTable举例
    DevExpress::XtraBars::BarEditItem获取EditValue值事件
    List<String^>^ 引用空间
    TreeList的VisibleNodesCount,Noes.Count,AllNdoesCount以及焦点节点的删除
    获取工程的exe文件的所在目录
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12712231.html
Copyright © 2011-2022 走看看