首页 > 代码库 > Python 正则表达式
Python 正则表达式
正则表达式
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是但粗和域名,但这样做不但麻烦,而且代码难以复用。
正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它"匹配"了,否则,该字符串就是不合法的。
所以我们判断一个字符串是否是合法的Email的方法是:
1、创建一个匹配Email的正则表达式;
2、用该正则表达式去匹配用户的输入来判断是否是合法
因为正则表达式也是用字符串来表示的,所以我们要先了解如何用字符来描述字符
特殊字符
变长字符
进阶
re模块
由于Python的字符串本身也用\转义,所以要特别注意:s=‘asdf\\asdf’
因此我们强烈建议使用Python的r前缀,就不用考虑转义的问题了
函数 re.match(re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none )
re.match(pattern, string, flags=0)
函数 re.search 扫描整个字符串并返回第一个成功的匹配,否则返回None (re.search(pattern, string, flags=0))
函数 re.findall 以列表的形式返回全部能匹配的字串 (re.findall(pattern, string[, flags]))
提取子串 除了简单地判断是否匹配之外,正则表达式还有提取子串的强大功能。用()表示的就是要提取的分组
^(\d{3}-(\d{3,8}$) 分别定义了两个组,可以直接匹配子串中提取出区号和本机号
贪婪匹配
正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符。
替换
Python的re模块提供了re.sub用于替换字符串中的匹配项(re.sub(pattern, repl, string, max=0))
正则表达式的修饰符
Python 正则表达式