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

    #coding:utf-8
    #/usr/bin/python
    """
    2018-11-25
    dinghanhua
    re
    """
    import re
    teststr = '"id":"2994925","publisher":"Yahoo Press","isbn10":"0596517742","isbn13":"9780596517748","title":"JavaScript","url":"https://api.douban.com/v2/book/2994925","alt_title":"","author_intro":"Douglas Crockford is a Senior JavaScript Architect at Yahoo!. He is the maintainer of the JSON format, and a regular speaker at conferences on advanced JavaScript topic. He is also on the JavaScript 2.0 committee at ECMA."'
    '''re.match() 从字符串的起始位置匹配 '''
    pattern = r'd+'
    print(re.match(pattern,teststr))
    pattern = r'"id":"(.*)","publisher'
    matchobj = re.match(pattern,teststr)
    print(matchobj.group(0))
    print(matchobj.groups())
    print(matchobj.group(1))
    print(matchobj.span())
    print(matchobj.start(),matchobj.end())
    '''re.search() 返回字符串中第一个匹配的 '''
    pattern = r'd+'
    print(re.search(pattern,teststr))
    pattern = r'"id":"(.*?)".*"title":"(.*?)"'
    matchobj = re.search(pattern,teststr)
    print(matchobj.group(0))
    print(matchobj.groups())
    print(matchobj.group(1,2))
    print(matchobj.span())
    print(matchobj.start(),matchobj.end())
    '''re.sub() 替换匹配项 repl=替换的字符串,count替换几个,默认0替换所有'''
    pattern = r'd+'
    teststr2 = re.sub(pattern,repl='1111',string=teststr,count=1)
    print(teststr2)
    
    pattern = r'D+'
    teststr2 = re.sub(pattern,"",teststr) #去掉所有非数字
    print(teststr2)
    '''compile()生成正则表达式对象'''
    pattern = re.compile(r'"(w+)":"(w+)"')
    matchobj = pattern.match(teststr)
    print(matchobj.groups())
    matchobj = pattern.search(teststr,10,100) #设定起始结束位置
    print(matchobj.groups())
    '''findall 匹配所有,返回列表'''
    pattern = r'"(w+)":"(d+)"'
    matchlist = re.findall(pattern,teststr)
    print(matchlist)
    pattern = re.compile(r'"(w+)":"(D+)"')
    matchlist = pattern.findall(teststr,10)
    print(matchlist)
    '''re.finditer 匹配所有,返回迭代器'''
    pattern = r'"(w+)":"(d+)"'
    matchiter = re.finditer(pattern,teststr)
    print(matchiter)
    for m in matchiter:
        print(m.groups())
    '''re.split() 正则分隔'''
    pattern = r'[^a-zA-Z]+' #根据非字母分隔
    splitlist = re.split(pattern,teststr)
    print(splitlist)
  • 相关阅读:
    求第N个素数
    HDU1568
    HDU1003 DP
    POJ 1016 模拟字符串
    POJ 3321 树状数组(+dfs+重新建树)
    UVA12532 线段树(单点更新,区间求乘积的正负)
    POJ2488 dfs
    POJ 1195 二维树状数组
    HDU 4006 优先队列
    优先队列
  • 原文地址:https://www.cnblogs.com/dinghanhua/p/10017007.html
Copyright © 2011-2022 走看看