Python正则表达式在Python语言中有很广泛的应用范围,我们不能更好的使用时因为没有了解到他的真谛。其实我们只有更好的学习才能不断的完善在今后的使用。
成都创新互联公司致力于互联网网站建设与网站营销,提供成都网站设计、做网站、网站开发、seo优化、网站排名、互联网营销、小程序制作、公众号商城、等建站开发,成都创新互联公司网站建设策划专家,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。
Python正则表达式(Regular Expression,简称Regex),是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。正则表达式是一种处理文本的强大工具,删除代码行号对于它来讲是小菜一叠。代码如下:
- import re #导入Python的正则表达式模块
- def CutLineNum (inStr):
- multiStr = inStr.splitlines(1) outStr = u''
- p = re.compile(r'\D*\d+\s?[.|:|\]|\)]?\s?') #编译正则表达式
- for singleLine in multiLine: outStr += p.sub( '', singleLine,
count = 1 ) #用空字符替换每行的***个匹配上述正则表达式的字符串- eturn outStr #返回累加后的字符串
以上代码中的咖色部分就是一个Regex,它的含义是:0或多个非数字字符 + 至少1个数字字符 + 0或1个空白字符 + 0或1个分隔符(包括点、冒号、右圆/方括号,可添加其他分隔符) + 0或1个空白字符。
以上Regex符合大多数代码前行号的规则,删除行号就是用空字符替换掉每行代码中***个匹配该Regex的字符串(注意只能是***个,因为程序里可能会存在abc1.open等情况,如果全部匹配就会误删代码)。
继续优化——采用函数编程
看起来还不够简洁,没关系,Python正则表达式是一种“准”函数编程(Functional Programming,FP)语言,做这种简化代码的事情最拿手。在这里,我用到了两种函数编程手段——匿名函数(lambda)和一种高阶函数(map),将代码简化至一行,如下:
- import re #导入Python的正则表达式模块
- outStr = ''.join(map(lambda x:re.compile(r'\D*\d+\s?[.
|:|\]|\)]?\s?').sub( '', x,count = 1 ),inStr.splitlines(1))))
以上就是对Python正则表达式的详细介绍。这样代码就只优化到了一行了,是不是很简洁呢?当然代码的可读性受到一定影响。所以函数编程不能滥用。(滥用的例子可以见我的文章《学习Python列表内涵:一行代码搞定双倍超立方数计算》)。函数编程是个稍微复杂点的问题,我觉得掌握与否均可,所以就不很详细地去解释上述代码了。
文章题目:Python正则表达式如何删除代码行
标题网址:http://www.csdahua.cn/qtweb/news12/42812.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网