Python学习-38.Python中的正则表达式(二)
2014-09-29 21:15
246 查看
在Python中,正则表达式还有较其他编程语言有特色的地方。那就是支持松散正则表达式了。
在某些情况,正则表达式会写得十分的长,这时候,维护就成问题了。而松散正则表达式就是解决这一问题的办法。
用上一次分组的代码作为例子:
现在假设我们离编写该代码隔了很长一段时间了,并不知道\d{3,4}和\d{8}的意义了。
如果一开始就写注释那多好,但我们总不能写
这样的注释吧。Don't repeat youself。松散正则表达式就用上了。
'''代表多行文本(同时也可用作代表文档注释)。
则值得注意的是,现在字符串中多出了很多空白以及注释(尽管他们现在作为字符串的一部分被编译),但运行的效果是一致的。
还有一点要注意的是,在re.match方法的最后,使用了re.VERBOSE参数,这指明当前正则表达式为松散正则表达式。在re.split及其他方法中,若需要使用松散正则表达式,则也需要使用该参数。
在某些情况,正则表达式会写得十分的长,这时候,维护就成问题了。而松散正则表达式就是解决这一问题的办法。
用上一次分组的代码作为例子:
import re userinput = input("please input test string:") m = re.match(r'(\d{3,4})-(\d{8})',userinput) if m: print('区号:' + m.group(1)) print('号码:' + m.group(2)) else: print('格式错误')
现在假设我们离编写该代码隔了很长一段时间了,并不知道\d{3,4}和\d{8}的意义了。
如果一开始就写注释那多好,但我们总不能写
# \d{3,4}代表区号,\d{8}代表号码
这样的注释吧。Don't repeat youself。松散正则表达式就用上了。
import re userinput = input("please input test string:") regex = r''' ( \d{3,4} # 区号 ) - # 区号与号码间的分隔符 ( \d{8} # 号码 ) ''' m = re.match(regex,userinput,re.VERBOSE) if m: print('区号:' + m.group(1)) print('号码:' + m.group(2)) else: print('格式错误')
'''代表多行文本(同时也可用作代表文档注释)。
则值得注意的是,现在字符串中多出了很多空白以及注释(尽管他们现在作为字符串的一部分被编译),但运行的效果是一致的。
还有一点要注意的是,在re.match方法的最后,使用了re.VERBOSE参数,这指明当前正则表达式为松散正则表达式。在re.split及其他方法中,若需要使用松散正则表达式,则也需要使用该参数。
相关文章推荐
- python学习之(五)正则表达式
- Python中的正则表达式学习总结
- python 系统学习笔记(十五)---正则表达式
- Python 之 【re模块的正则表达式学习】
- (学习)python非贪婪、多行匹配正则表达式例子 分类: 正则表达式 2013-08-19 11:21 2540人阅读 评论(2) 收藏
- Python模块学习 re 正则表达式
- 学习PYTHON 之 松散正则表达式
- Python中re(正则表达式)模块学习
- Python学习笔记--正则表达式,re模块
- python学习--正则表达式(一)
- python的正则表达式学习笔记
- 正则表达式语法学习(Python/Qt/Vim)
- python正则表达式学习
- Python中re(正则表达式)模块学习
- python 学习记录(2)—re 正则表达式模块的使用
- Python中re(正则表达式)模块学习
- Python re正则表达式学习
- python 学习记录(10)-字符串与正则表达式
- Python中re(正则表达式)模块函数学习
- Python中re(正则表达式)模块学习