首先这是一个模块 re 使用以前须要导入 import re正则表达式
里面包括不少的定义函数,功能很强大,主要用于字符串的搜索,查找,匹配express
什么是正则表达式(what):函数
正则表达式(regular expression)定义:spa
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,对象
描述了一种字符串匹配的模式(pattern),能够用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等blog
怎么建立正则表达式(how):字符串
起初真是被这么陌生高大上名字给弄晕了,其实:数学
构造正则表达式的方法和建立数学表达式的方法同样。也就是用多种元字符与运算符能够将小的表达式结合在一块儿来建立更大的表达式。正则表达式的组件能够是单个的字符、字符集合、字符范围、字符间的选择或者全部这些组件的任意组合。就是由于各类字符不一样的结合方式,能够来告诉计算机怎么查找,匹配string是咱们所须要的字符串string
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式做为一个模板,将某个字符模式与所搜索的字符串进行匹配。io
这些字符主要包括四个部分:
普通字符:
普通字符包括没有显式指定为元字符的全部可打印和不可打印字符。这包括全部大写和小写字母、全部数字、全部标点符号和一些其余符号。
非打印字符:
特殊字符:
所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoo*b 中的 *,简单的说就是表示任何字符串的意思。若是要查找字符串中的 * 符号,则须要对 * 进行转义,即在其前加一个 \: runo\*ob 匹配 runo*ob。
许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:
限定符:
限定符用来指定正则表达式的一个给定组件必需要出现多少次才能知足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
这些不用所有如今所有记忆下来,很难记住,尝试大胆使用,按照本身的要求,尝试组合字符构建正则表达式,不断改变正则表达式,达到本身切分目的后,理解比较各类切分字符组合含义,再记忆,有些看起来功能相同,能处理达到本身要求,实际隐藏的做用也就不必探究了。
各类函数:
re.match(patten,string,flags)(pattern=正则表达式,string=须要处理的字符串,flags=标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。)
尝试从字符串的起始位置匹配一个模式,若是不是起始位置匹配成功的话,match()就返回none。
咱们可使用group()或groups()匹配对象函数来获取匹配后的结果。
。。。
刚才知道有一个能够取代正则表达式的库。。小白卒