zoukankan      html  css  js  c++  java
  • python 正则表达式字符说明

    .

    元字符说明
    . 代表任意字符
    | 逻辑或操作符
    [ ] 匹配内部的任一字符或子表达式
    [^] 对字符集和取非
    - 定义一个区间
    对下一字符取非(通常是普通变特殊,特殊变普通)
    * 匹配前面的字符或者子表达式0次或多次
    *? 惰性匹配上一个
    + 匹配前一个字符或子表达式一次或多次
    +? 惰性匹配上一个
    ? 匹配前一个字符或子表达式0次或1次重复
    {n} 匹配前一个字符或子表达式
    {m,n} 匹配前一个字符或子表达式至少m次至多n次
    {n,} 匹配前一个字符或者子表达式至少n次
    {n,}? 前一个的惰性匹配
    ^ 匹配字符串的开头
    A 匹配字符串开头
    $ 匹配字符串结束
    [] 退格字符
    c 匹配一个控制字符
    d 匹配任意数字
    D 匹配数字以外的字符
    匹配制表符
    w 匹配任意数字字母下划线
    W 不匹配数字字母下划线
    正则表达式代表的匹配字符
    [0-9] 0123456789任意之一
    [a-z] 小写字母任意之一
    [A-Z] 大写字母任意之一
    d 等同于[0-9]
    D 等同于[^0-9]匹配非数字
    w 等同于[a-z0-9A-Z_]匹配大小写字母、数字和下划线
    W 等同于[^a-z0-9A-Z_]等同于上一条取非

     例:

    import re
    
    key2 = r"<html><body><h1>hello world</h1></body></html>"#这段是你要匹配的文本
    re2 = re.compile(r"(?<=<h1>).+?(?=</h1>)") # ?<= 和 ?= 就是匹配里面 向前查找 和 向后查找 
    print(re2.findall(key2))  # 结果为 Hello world
    
    """split 方法按照能够匹配的子串将字符串分割后返回列表"""
    xx = re.split('W+', ',1,runoob,runoob, runoob1212123');
    print(xx)
    
    """和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回"""
    it = re.finditer(r"d+","12a32bc43jf3")
    for match in it:
        print (match.group() )
    
    """
    findall在字符串中找到正则表达式所匹配的所有子串
    注意: match 和 search 是匹配一次 findall 匹配所有。
    """
    pattern = re.compile(r'D+')   # 查找非数字
    result1 = pattern.findall('runoob 123 google 456')
    print(result1)
    
    
    """ compile 编译正则表达式,供 match() 和 search() 这两个函数使用"""
    pattern = re.compile(r'([0-9]+) ([0-9]+)',re.I) # re.I 表示忽略大小写
    cc = pattern.match('23 44444 343')
    print(cc.group(2) )
    
    
    """sub 替换字符串中的匹配项"""
    phone = "2000-34-434 #这是一个外国的电话"
    num = re.sub(r'#.*$',"",phone);
    print(num)
    
    
    """ search 全局搜索字符串"""
    
    matchObj = re.search(r'com', 'www.runoob.com')
    if matchObj:
       print("search --> matchObj.group() : ", matchObj.group())
    else:
       print( "No match!!",matchObj)
    
    
    """match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。"""
    ma = re.match('www', 'www.runoob.com')  # 在起始位置匹配
    print(ma)
    print(ma.group(0))

    #字符串中提取ip

     string_ip = "is this 289.22.22.22 ip ?
      result = re.findall(r"(?:[0-9]{1,3}.){3}[0-9]{1,3}", string_ip)


     

  • 相关阅读:
    sqlserver 获取系统用户表结构信息
    Android访问WebService的两种方法
    C# WebService的简单和复杂参数类型和结果的JSON格式
    JQuery的Ajax使用Get,Post方法调用C#WebService并返回数据
    jQuery提交Json数据到Webservice,并接收返回的Json数据
    C#开发的WebService使用JSON格式传递数据+Ajax测试
    Web项目的三层架构和MVC架构异同
    SqlServer更新视图存储过程函数脚本
    SqlServer刷新所有视图
    SqlServer获取表结构语句
  • 原文地址:https://www.cnblogs.com/wtcl/p/8461972.html
Copyright © 2011-2022 走看看