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


    来源

    1、python正则匹配

    1.1 re.search 正则表达式

    search将字符串的所有字串尝试与正则表达式匹配,如果所有的字串都没有匹配成功,返回none,否则返回matchobject;(可以理解为“无为0,有为1”)

    import re
    s1 = "helloworld,i am 30"
    w1 = "world"
    m1 = re.search(w1,s1)
    if m1:
        print("find:%s"%m1.group())
    

    输出为:(m1.group()可以一次输出多个数组--对应字符串,此处匹配到一个world,则输出匹配到的一个字符串)

    world
    

    1.2 re.match() 正则表达式

    match只从字符串的开始与正则表达式匹配,匹配成功返回matchobject,否则返回none

    import re
    s1 = "helloworld,i am 30"
    w1 = "world"
    m1 = re.match(w1,s1)
    if m1:
        print("find:%s"%m1.group())
    else
        print("no match")
    

    输出为:(由于re.match()从字符串开头匹配,两个字符串都不匹配,因此无法匹配)

    no match
    

    1.3 re.match与re.search的区别

    1.4 检索和替换

    (1)repl参数是一个函数

    (2)re.compile函数

    (3)findall
    在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
    注意:match和serach是匹配一次,findall是匹配所有。
    语法格式为:findall(string[, pos[, endpos]])
    参数:

    • string:待匹配的字符串;
    • pos:可选参数,指定字符串的起始位置,默认为0;
    • endpos:可选参数,指定字符串的结束位置,默认为字符串的长度;

    查找字符串中的所有数字:

    pattern = re.complie(r'd+')   #查找数字
    result1 = pattern.findall('runoob 123 google 456')
    result2 = pattern.findall('run88oobgoogle456', 0, 10)
    
    print(result1)
    print(result2)
    

    输出结果为:

    ['123', '456']
    ['88', '12']
    

    result2 = pattern.findall('run88oobgoogle456', 0, 10)中的0指的是字符串中的起始位置,10指的是字符串的结束位置,默认为字符串的长度;

    (4)re.finditer

    (5)re.split

    1.5 正则表达式对象

    (1)re.RegexObject

    (2)re.MatchObject

    1.6 正则表达式修饰符 - 可选标志

    1.7 正则表达式模式

    1.8 正则表达式实例

    1.9 正则表达式re.findall用法

    语法:findall(pattern, string, flags=0)
    正则re.findall是返回string中所有与pattern相匹配的全部字串,返回形式为数组;

    (1)一般情况

    regular_v1 = re.findall(r"docs", "https://docs.python.org/3/whatsnew/3.6.html")
    print(regual_v1)
    

    输出结果为:
    ['docs']

    (2)符号^表示匹配https开头的字符串返回

    regular_v2 = re.findall(r"^https", "https://docs.python.org/3/whatsnew/3.6.html")
    print(regular_v2)
    

    输出结果为:
    ['https']

    (3)用$符号表示以html结尾的字符串返回,判断是否字符串结束的字符串

    regular_v3 = re.findall(r"html$", "https://docs.python.org/3/whatsnew/3.6.html")
    print(regular_v3)
    

    输出结果为:
    'html'

    (4)[...]匹配括号中的其中一个字符

    regular_v4 = re.findall(r"[t,w]h", "https://docs.python.org/3/whatsnew/3.6.html")
    print(regular_v4)
    

    输出结果为:
    ['th', 'wh']

    (5)“d”是正则语法规则用来匹配0到9之间的数返回列表

    regular_v5 = re.findall(r"d", "https://docs.python.org/3/whatsnew/3.6.html")
    regular_v6 = re.findall(r"ddd", "https://docs.python.org/3/whatsnew/3.6.html/1234")
    print(regular_v5)
    print(regular_v6)
    

    输出结果为:

    ['3', '3', '6']
    ['123']
    

    (6)小d表示取数字0-9,大D表示不要数字,也就是除了数字以外的内容返回

    regular_v7 = re.findall(r"D", "https://docs.python.org/3/whatsnew/3.6.html")
    print(regular_v7)
    

    输出结果为:
    ['h', 't', 't', 'p', 's', ':', '/', '/', 'd', 'o', 'c', 's', '.', 'p', 'y', 't', 'h', 'o', 'n', '.', 'o', 'r', 'g', '/', '/', 'w', 'h', 'a', 't', 's', 'n', 'e', 'w', '/', '.', '.', 'h', 't', 'm', 'l']

    (7)“w”在正则里面代表匹配从小写a到z,大写A到Z,数字0到9

    regular_v8 = re.findall(r"w", "https://docs.python.org/3/whatsnew/3.6.html")
    print(regular_v8)
    

    输出结果为:
    ['h', 't', 't', 'p', 's', ':', '/', '/', 'd', 'o', 'c', 's', '.', 'p', 'y', 't', 'h', 'o', 'n', '.', 'o', 'r', 'g', '/', '/', 'w', 'h', 'a', 't', 's', 'n', 'e', 'w', '/', '.', '.', 'h', 't', 'm', 'l']

    (8)“W”在正则里面代表匹配除了字母与数字以外的特殊符号

    regular_v8 = re.findall(r"W", "https://docs.python.org/3/whatsnew/3.6.html")
    print(regular_v8)
    

    输出结果为:
    [':', '/', '/', '.', '.', '/', '/', '/', '.', '.']

  • 相关阅读:
    事务/数据库操作之事务,开启回滚提交
    python连接数据库、cursor fetch语句处理
    order by 排序输出、插入
    表的查询,
    android权限大全
    uniapp ios端证书打包+开发环境
    uniapp在app端白屏报错
    数字递增动画js插件-countUp.js
    窗口滚动时,判断元素与视野的关系-js代码
    Linux安装Nginx并配置站点
  • 原文地址:https://www.cnblogs.com/hugechuanqi/p/9609838.html
Copyright © 2011-2022 走看看