1. Python与正则表达式
开始查看python当前如何通过使用re模式来支持正则表达式,re模式在古老的Python1.5版本中引入,用于替换哪些已经过时的regex模块和regsub模块---这两个模块在Python2.5版本中被移除,并且此后导入这两个模块中的任意一个都会触发ImportError异常.
re模块支持更强大而且更通用的Perl风格的正则表达式,该模式允许多个线程共享同一个已编译的正则表达式对象,也支持命名子组。
1. re模块
re模块中提供了很多函数和方法,他们中大多数函数也与已经编译的正则表达式对象(regex object)和正则匹配对象(regex match object)的方法同名并且具有相同的功能。
1.1. 匹配对象以及group()和groups()方法
当处理正则表达式时,除了正则表达式之外的对象,还有另外一个对象类型: 匹配对象. 这个对象是正则表达式调用match()或者search()匹配成功返回的对象. 该对象中主要有两个方法:group()和groups()方法
group()要么返回整个匹配对象,要么根据要求返回特定字组. groups()则仅返回一个包含唯一或者全部子组的元素. 如果没有子组的要求. 那么当group()依然返回整个匹配时,groups()返回一个空元组.
1.2. match方法匹配字符串
语法:
import re re.match("正则表达式","需要匹配的字符串")
尝试使用正则表达式模块从字符串的起始部分去匹配,如果匹配成功,则返回匹配对象,如果失败,就返回None
# -*- coding: UTF-8 -*- importre result = re.match('www','www.itsource.cn') ifresult is not None: print(result.group())# www
1.3. search方法搜索字符串
语法:
import re re.search("正则表达式","需要搜索的字符串")
在需要搜索的字符串中搜索第一次出现的正则表达式模式. 如果匹配成功,则返回匹配对象,如果失败,就返回None.
importre result = re.search('itsource','www.itsource.cn') ifresult is not None: print(result.group())# itsource
注意:
match和search唯一的区别: match从一个字符串的开始位置匹配,search从字符串的任意位置进行匹配.
1.4. findall方法搜索所有内容
语法:
import re re.sfindall("正则表达式","需要搜索的字符串")
查找字符串中所有出现的正则表达式模块. 并且返回一个匹配列表.
importre result = re.findall ('itsource','www.itsource.cn') print(result) #[itsource]
1.5. split方法进行分隔
语法:
import re re.split ("正则表达式","需要分隔的字符串")
根据正则表达式的模式分隔符,split函数将字符串分隔为列表,然后返回成功匹配的列表.
import re result = re.split(',','www.itsource.cn,www.baidu.com,www.google.com,www.taobao.com') print(result);