zoukankan      html  css  js  c++  java
  • 【python】正则表达式相关

    注意:Python3.X 的print要有括号, Python 2.x的不需要

    放上学习时写的例子:

    import re
    
    m = re.match(r'(w+) (w+)(?P<sign>.*)', 'hello world!')
    
    
    print("m.string:", m.string)
    print("m.re:", m.re)
    print("m.pos:", m.pos)
    print("m.endpos:", m.endpos)
    print("m.lastindex:", m.lastindex)
    print("m.lastgroup:", m.lastgroup)
    
    print("m.group():", m.group())
    print("m.group(1,2):", m.group(1,2))
    
    print("m.groups():", m.groups())
    print("m.groupdict():", m.groupdict())
    
    print("m.start(2):", m.start(2))
    
    print("m.span(2):", m.span(2))
    
    print(r"m.expand(r'g gg'):", m.expand(r'2 13'))
    
    
    #search 不一定从第0位开始匹配
    
    pattern = re.compile(r'world')
    
    match = re.search(pattern, 'hello world!')
    if match:
        print(match.group())
     
    
    
    
    #split 已pattern分割字符串
    pattern = re.compile(r'd+')
    print(re.split(pattern, 'one1two2three33four4'))
    
    #findall 以列表形式返回全部能匹配的子串
    
    pattern = re.compile(r'd+')
    print(re.findall(pattern, 'one1two2three33four4'))
    
    #finditer 返回一个顺序访问每一个匹配结果的迭代器
    pattern = re.compile(r'd+')
    
    for m in re.finditer(pattern, 'one1two2three3four4'):
        print(m.group())
    
    
    #替换
    pattern = re.compile(r'(w+) (w+)')
    s = 'i say, hello world!'
    
    
    
    print(re.sub(pattern, r'2 1', s))
    
    
    def func(m):
        return m.group(1).title() + ' ' + m.group(2).title()
    
    
    
    print(re.sub(pattern, func, s))
        
    #subn 比替换多返回了一个替换次数
    
    print(re.subn(pattern, func, s))
  • 相关阅读:
    225. 用队列实现栈
    232. 用栈实现队列
    459.重复的子字符串(简单)
    28. 实现 strStr()(简单)
    剑指 Offer 58
    541. 反转字符串 II(简单)
    浏览器渲染页面的过程、重绘、重排以及页面优化
    隐藏一个元素的几种方法
    当我们在浏览器中输入一个URL后,发生了什么?
    Object.create() 和 new Object()、{} 的区别
  • 原文地址:https://www.cnblogs.com/dplearning/p/4852869.html
Copyright © 2011-2022 走看看