python常用的正则表达式操作
来源:互联网 发布:网页编程培训 编辑:程序博客网 时间:2024/05/22 20:55
模块名称: re
方法名称: re.compile
方法描述: 将一段正则表达式编译成一个python的正则表达式对象,利用这个对象可以使用match和search等一些方法
方法示例:
编译一个匹配html中的链接的正则对象,目的是抽取出target属性中的值(抽取的值就是匹配出在正则中用'()'括起来的字符串)
注:re.IGNORECASE表示忽略大小写
方法名称: re.match(patter, string, flags=0)
方法描述: 从string字符串的开始匹配符合正则表达式的字符串,如果匹配成功返回一个MatchObject对象,否则返回None。
方法示例:
#注: 通过调用MatchObject对象的groups方法得到一个要抽取的所有字符串的一个元组对象
方法名称: re.search(patter, string, flags=0)
方法描述: 搜索整个字符串,如果匹配成功返回一个MatchObject对象,否则返回None。
方法示例:
方法名称: re.findall(pattern, string, flags=0)
方法描述:搜索整个字符串,如果找到匹配,返回一个分组的元组。
方法示例:
方法名称: re.sub(pattern, repl, string, count=0, flags=0)
方法描述:用repl替换string中匹配到pattern的字符串,repl也可以是个函数返回替换的字符串
方法示例:替换target中的值将_blank => _blank
1.repl是字符串
'aaaaas<a href="http://renren.com" target="_blank">bb</a>aa<a href="http://renren.com" target="_blank">aa</a>aa'
2.repl是函数(如果target值中有b则返回_blank否则设置为_Self)
最后解释一下贪婪模式:
'*' '+' '?' 修饰浮都是贪婪的,所谓贪婪指的是他们会尽可能的匹配多的字符。比如:<.*>对于<a>haha</a>,会匹配整个字符串而不是<a>,如果想要匹配<a>的话在*后面加一个修饰浮'?'就会如愿.<.*?>
方法名称: re.compile
方法描述: 将一段正则表达式编译成一个python的正则表达式对象,利用这个对象可以使用match和search等一些方法
方法示例:
编译一个匹配html中的链接的正则对象,目的是抽取出target属性中的值(抽取的值就是匹配出在正则中用'()'括起来的字符串)
>>> target_re = re.compile(r'<\s*a(.*?)target=["|\']([^"\']*?)["|\']', re.IGNORECASE)
注:re.IGNORECASE表示忽略大小写
方法名称: re.match(patter, string, flags=0)
方法描述: 从string字符串的开始匹配符合正则表达式的字符串,如果匹配成功返回一个MatchObject对象,否则返回None。
方法示例:
>>> target_re = re.compile(r'<\s*a(.*?)target=["|\']([^"\']*?)["|\']', re.IGNORECASE)>>> a = re.match(target_re, 'aaa<a href="http://renren.com" target="_balnk">点击打开链接</a>aa<a href="http://renren.com" target="_balnk">点击打开链接</a>aa'>>> a is NoneTrue>>> a = re.match(target_re, '<a href="http://renren.com" target="_balnk">点击打开链接</a>aa<a href="http://renren.com" target="_balnk">点击打开链接</a>aa'>>> a.groups()(' href="http://renren.com" ', '_balnk')
#注: 通过调用MatchObject对象的groups方法得到一个要抽取的所有字符串的一个元组对象
方法名称: re.search(patter, string, flags=0)
方法描述: 搜索整个字符串,如果匹配成功返回一个MatchObject对象,否则返回None。
方法示例:
>>> target_re = re.compile(r'<\s*a(.*?)target=["|\']([^"\']*?)["|\']', re.IGNORECASE)>>> a = re.search(target_re, 'aaa<a href="http://renren.com" target="_balnk">点击打开链接</a>aa<a href="http://renren.com" target="_balnk">点击打开链接</a>aa'>>> a.groups()(' href="http://renren.com" ', '_balnk')
方法名称: re.findall(pattern, string, flags=0)
方法描述:搜索整个字符串,如果找到匹配,返回一个分组的元组。
方法示例:
>>> a = re.findall(target_re, '<a href="http://renren.com" target="_balnk">点击打开链接</a>aa<a href="http://renren.com" target="_balnk">点击打开链接</a>aa')>>> a[(' href="http://renren.com" ', '_balnk'), (' href="http://renren.com" ', '_balnk')]
方法名称: re.sub(pattern, repl, string, count=0, flags=0)
方法描述:用repl替换string中匹配到pattern的字符串,repl也可以是个函数返回替换的字符串
方法示例:替换target中的值将_blank => _blank
1.repl是字符串
>>> htmls = re.sub(target_re, r'<a\1target="_blank"', 'aaaaas<a href="http://renren.com" target="_balnk">bb</a>aa<a href="http://renren.com" target="_balnk">aa</a>aa')>>> htmls
'aaaaas<a href="http://renren.com" target="_blank">bb</a>aa<a href="http://renren.com" target="_blank">aa</a>aa'
2.repl是函数(如果target值中有b则返回_blank否则设置为_Self)
>>> htmls = re.sub(target_re, lambda x: "<a" + x.group(1)+ 'target="' + ('_blank"' if 'b' in x.group(2) else '_self"'), '<a href="http://renren.com" target="p">')>>> htmls'<a href="http://renren.com" target="_self">'
最后解释一下贪婪模式:
'*' '+' '?' 修饰浮都是贪婪的,所谓贪婪指的是他们会尽可能的匹配多的字符。比如:<.*>对于<a>haha</a>,会匹配整个字符串而不是<a>,如果想要匹配<a>的话在*后面加一个修饰浮'?'就会如愿.<.*?>
- python常用的正则表达式操作
- python常用正则表达式
- 正则表达式的常用操作符
- 正则表达式的常用操作符
- Python正则表达式的常用匹配用法
- python中常用的正则表达式
- Python最常用的正则表达式
- 正则表达式常用操作符
- python正则表达式常用方法
- python中常用正则表达式
- Python正则表达式操作指南<Python正则表达式操作指南>
- Python正则表达式操作指南
- Python正则表达式操作指南
- Python正则表达式操作指南
- Python正则表达式操作指南
- Python正则表达式操作指南
- Python正则表达式操作指南
- Python正则表达式操作指南
- WampServer中phpMyadmin不能打开解决方案
- NSUserDefaults standardUserDefaults使用注意事项
- TIBCO DATALOSS Advisories
- AC自动机专题
- MYSQL常用命令
- python常用的正则表达式操作
- 如何重载对话框右上角的关闭键(C#,VS2008)
- Iphone开发(二)从helloWorld看app应用的运行轨迹和生命周期
- 如何检查oracle死锁
- oracle客户端访问服务器端
- oracle经典20题(参考答案)
- Nielsen:智能手机如何改变用户购物行为?
- GreenPlum--Case When
- 一些oracle资料网址