python非贪婪、多行匹配正则表达式例子
来源:互联网 发布:播音员声音软件 编辑:程序博客网 时间:2024/05/02 14:28
在学python的过程中,一直弄不明白sys.argv[]的意思,虽知道是表示命令行参数,但还是有些稀里糊涂的感觉。
今天又好好学习了一把,总算是大彻大悟了。
Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身的文件名,所以参数从1开始,以下两个例子说明:
一些regular的tips:
1 非贪婪flag
>>> re.findall(r"a(\d+?)", "a23b")
['2']
>>> re.findall(r"a(\d+)", "a23b")
['23']
['2']
>>> re.findall(r"a(\d+)", "a23b")
['23']
注意比较这种情况:
>>> re.findall(r"a(\d+)b", "a23b")
['23']
>>> re.findall(r"a(\d+?)b", "a23b")
['23']
['23']
>>> re.findall(r"a(\d+?)b", "a23b")
['23']
2 如果你要多行匹配,那么加上re.S和re.M标志
re.S:.将会匹配换行符,默认.不会匹配换行符
>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b")
[]
>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b", re.S)
[('23', '34')]
>>>
[]
>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b", re.S)
[('23', '34')]
>>>
re.M:^$标志将会匹配每一行,默认^和$只会匹配第一行
>>> re.findall(r"^a(\d+)b", "a23b\na34b")
['23']
>>> re.findall(r"^a(\d+)b", "a23b\na34b", re.M)
['23', '34']
['23']
>>> re.findall(r"^a(\d+)b", "a23b\na34b", re.M)
['23', '34']
但是,如果没有^标志,
>>> re.findall(r"a(\d+)b", "a23b\na23b")
['23', '23']
['23', '23']
可见,是无需re.M
- python非贪婪、多行匹配正则表达式例子
- (学习)python非贪婪、多行匹配正则表达式例子
- (学习)python非贪婪、多行匹配正则表达式例子
- python非贪婪、多行匹配正则表达式
- python 贪婪和非贪婪、多行匹配正则表达式小结
- python 贪婪和非贪婪、多行匹配正则表达式小结
- python 正则表达式的贪婪匹配与非贪婪匹配
- 正则表达式-贪婪与非贪婪匹配
- 正则表达式-贪婪与非贪婪匹配
- Python re库 非贪婪匹配(正则表达式库)
- 正则表达式的贪婪匹配(.*)和非贪婪匹配(.*?)
- 正则表达式的贪婪匹配和非贪婪匹配
- 正则表达式的贪婪匹配和非贪婪匹配
- 正则表达式中贪婪匹配和非贪婪匹配
- js正则表达式的贪婪匹配和非贪婪匹配
- 什么是正则表达式的贪婪与非贪婪匹配
- 正则表达式(一) 匹配原理/贪婪与非贪婪
- [Python]解决正则表达式的"贪婪"匹配
- W2A,A2W,及其慎用
- cvNamedWindow函数使用说明
- android开发创建Activity时会把标题栏去掉
- 个人职业规划
- view 的 privilege
- python非贪婪、多行匹配正则表达式例子
- OpenGL入门学习
- 细说:DataSet (ADO.NET)
- 基于stackoverflow.com问题标签的对语言、平台流行度的统计
- <input>回车后调用JS进行指定操作
- 从android游戏框架看其生命周期!
- Linux下使Shell 命令脱离终端在后台运行
- (转) 配置jboss,mysql,seam,eclipse步骤(一)
- mkdir 创建目录忽略路径判断