python 正则表达式
来源:互联网 发布:淘宝0信誉店铺出售 编辑:程序博客网 时间:2024/05/17 02:43
最近在做毕设,需要学习一下正则表达式
正则表达式的基本语法:
那么什么叫做非贪婪(尽可能少匹配字符)呢?
举个例子:ma = re.match(r'[0-9][a-z]*','3abc') ma.group() #匹配结果为3abcma = re.match(r'[0-9][a-z]*?','3abc')ma.group() #匹配结果为3ma = re.match(r'[0-9][a-z]+?','3abc')ma.group() #匹配结果为3a
边界匹配:
分组匹配:
贪婪模式和非贪婪模式
如:String str="abcaxc";
Patter p="ab*c";
贪婪匹配:
正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。
非贪婪匹配:
就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。
贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。
属于贪婪模式的量词,也叫做匹配优先量词,包括: “{m,n}”、“{m,}”、“?”、“”和“+”。 在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词,也叫做忽略优先量词,包括: “{m,n}?”、“{m,}?”、“??”、“?”和“+?”。 从正则语法的角度来讲,被匹配优先量词修饰的子表达式使用的就是贪婪模式,如“(Expression)+”;被忽略优先量词修饰的子表达式使用的就是非贪婪模式,如“(Expression)+?”。
常用函数
re.compile(pattern,flag=0)
把一个正则表达式编译成一个正则表达式对象,可以用match()和search()来匹配
Compile a regular expression pattern into a regular expression object, which can be used for matching using its match() and search() methods
prog = re.compile(pattern)result = re.match(string)
等价于:result = re.match(pattern,string)
但是用re.compile(),保存正则表达式对象,在重用的时候很有效,比如在一个程序中要多次用到的时候
but using re.compile() and saving the resulting regular expression object for reuse is more efficient when the expression will be used
several times in a single program.
这样一个个函数的解释也麻烦,就来一张表格吧
正则表达式模块的函数
正则表达式模块的标记
- python正则表达式学习
- c++正则表达式,python
- Python正则表达式(一)
- python的正则表达式
- Python正则表达式
- Python初学-正则表达式
- 正则表达式与python
- python正则表达式学习
- python正则表达式学习
- python正则表达式学习
- python正则表达式
- Python - 正则表达式
- Python正则表达式
- python正则表达式
- Python正则表达式指南
- Python正则表达式指南
- Python 正则表达式指南
- python 正则表达式
- Tensorflow教程-曼德布洛特(Mandelbrot)集合
- storm介绍2
- Android PopupWindow 弹框
- 文件传输发送端
- Tensorflow教程-偏微分方程
- python 正则表达式
- python 组合数据类型
- 锁卡上层流程
- 源码分析MyCat----优化篇之支持ER分片多语句插入(基于1.6)
- Android 中的Dalvik和ART是什么,有啥区别?
- Python 调用百度API
- Android Studio 使用过程中遇到的坑
- adb 详细使用文档
- Intent之Action