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

    记号

    说明 样例
    literal 匹配字符串的值 foo
    re1|re2 匹配正则表达式re1 或 re2 foo|bar
    . 匹配任意字符(除换行符) b.b
    ^ 匹配字符串的开始 ^Dear
    $ 匹配字符串的结尾 /bin/*sh$
    * 匹配前面出现的正则表达式零次或多次 [A-Za-z0-9]*
    + 匹配前面出现的正则表达式一次或多次 [a-z]+
    ? 匹配前面出现的正则表达式零次或一次 goo+
    {N} 匹配前面出现的正则表达式N次 [0-9]{3}
    {M,N} 匹配重复出现M到N次的正则表达式 [0-9]{3,5}
    [...] 匹配字符组里任意一个字符 [ahfj]
    [..x-y..] 匹配从x到y中的任意字符 [0-9],[A-Za-z]
    [^...] 不匹配字符集中出现的任一字符 [^A-Za-z]
    (*|+|?|{})? 用于非贪婪模式 .*?[a-z]
    (...) 匹配括号中的正则表达式,并保存为子组 ([0-9]{3})?,f(oo|u)bar
    记号 说明 样例
    d 匹配任何数字,和[0-9]一样 (D是d的反义:任何非数字符) datad+.txt
    w 匹配任何数字字母字符,和[A-Za-z0-9]相同 (W是w的反义) [A-Za-z]w+
    s 匹配任何空白符,和[ vf]相同,(S是s的反义) ofsthe
     匹配单词边界(B是的反义) The
    n 匹配已保存的子组 price:16
    c 逐一匹配特殊字符c ., \, *
    A() 匹配字符串的开始(结尾) ADear
    函数/方法 描述
    compile(pattern, flags=0) 对正则表达式模式pattern进行编译,flags可选参数
    match(pattern, string, flags=0) 用pattern匹配字符串string开头,如成功则返回匹配对象,否则返回None
    search(pattern, string, flags=0) 在字符串string中搜索pattern的第一次出现,如成功则返回匹配对象,否则返回None
    findall(pattern, string[,flags]) 在字符串string中搜索pattern的所有出现,返回匹配对象的列表
    finditer(pattern, string[,flags]) 和findall相同,但返回的是迭代器
    split(pattern, string, max=0) 根据pattern把string分割为一个列表,并返回
    sub(pattern, repl, string, max=0) 把string中匹配到的pattern换成repl
    subn(pattern, repl, string, max=0) 和sub相同,但并返回替换次数
    group(num=0) 返回全部匹配对象(或第num个子组)
    groups() 返回一个包含全部匹配的子组的元组

        正则表达式默认是贪心匹配的,如果正则表达式模式中使用到通配字,那它在按照从左到右的顺序求值时,会尽量“抓取”满足匹配的最长字符串。有时需要“抓取”最短字符串,因此就需要使用非贪心匹配。非贪婪操作符“?”,可以用在“*”,“+”,“?”的后面。

  • 相关阅读:
    http协议及工作原理
    前端中的安全问题
    JS中的splice slice concat关于字符串,数组的处理
    git stash缓存
    Node学习心得
    uni-app中的TypeError: Cannot read property 'name' of undefined
    js 中Object.keys()返回string类型的索引
    JS中sort()方法,用于排序
    JS中JSON传值
    JS encodeURI()
  • 原文地址:https://www.cnblogs.com/Climbing-Snail/p/10264322.html
Copyright © 2011-2022 走看看