美文网首页程序员
[Python3] 实用正则表达式

[Python3] 实用正则表达式

作者: Maxmoe | 来源:发表于2018-02-21 21:57 被阅读0次

    python正则表达式相关函数

    • import re
    • re.search(condition_str, source_str) :正则匹配字符串中满足条件的子字符串,返回布尔值。
      re.findall(condition_str, source_str):正则查找字符串中满足条件的子字符串,返回所有子字符串(the output is a list that has a string as
      the single element in the list)。

    正则表达式 cheat sheet

    • .:匹配任意字符
      a..b : 匹配所有axxb型
      .+ 万能牌(wild card): a.+b匹配所有以a开头以b结尾的字符串
      (a,b间非空)。 x+匹配含有一个或更多x的字符串。(greedy)
      +?+的非greedy模式
      .*:广谱万能牌: a.*b匹配所有以a开头以b结尾的字符串(a,b间可以无其他字符)。x*匹配含有一个或更多x的字符串。(greedy)
      *?*的非greedy模式
      (+与*都与左数第一个字符联合)
      *和+均为贪心匹配(greedy matching) :matches as many required characters as possible

    • \s : 匹配所有空格字符
      \S:匹配所有非空格字符

    • \b:匹配词的开始或结尾
      \B:匹配词的非开始结尾

    • \d :匹配所有数字,相当于set[0-9]
      \D:匹配所有非数字,相当于set[^0-9]

    • []:方括号(square bracket)内字符为可接受匹配的字符
      []中第一个字符为^时,括号内容被反义。[^A-Za-z]表示匹配除了A-Z和a-z的所有字符。
      ():圆括号(parentheses)内字符为在匹配过程中被忽略的字符。但与findall()函数连用时,虽然依旧用整个正则表达式查找,但最终得到的返回值只有括号内的部分。

    • 转义字符(escape characters) :\

    • ^:匹配行初
      $:匹配行末

    应用实例

    • 邮件地址
      [a-zA-Z0-9]\S*@\S*[a-zA-Z0-9]
    • 取出所有满足Details: http://source.saki.org/viewsvn/?view=rev&rev=39772格式的url中的revision numbers
      '^Details:.*rev=([0-9.]+)'

    外部链接

    20个常用正则表达式

    相关文章

      网友评论

        本文标题:[Python3] 实用正则表达式

        本文链接:https://www.haomeiwen.com/subject/qipotftx.html