免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4816 | 回复: 5
打印 上一主题 下一主题

python 截取一段字符串中想要得内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-05-11 16:05 |只看该作者 |倒序浏览
对于文本中内容格式如下:a = '''
dis
#
    a
    b
    c
#
asd
#
asde
as
#
return'''

怎么去获取两个#号之间得内容了,内容为:
#
需要获取得内容
#
asd
#
需要获取得内容
#

当我使用tmp = re.findall(r'#\n(.*\n)+?#\n',a)贪婪匹配时,只能获取到以下内容:
['    c\n', 'as\n']
不适用贪婪匹配得话,tmp = re.findall(r'#\n(.*\n)+#\n',a),获取结果如下:
['as\n']

求问,怎么获取到正确得结果,谢谢。

论坛徽章:
0
2 [报告]
发表于 2017-05-11 16:35 |只看该作者
忘记要把贪婪匹配放在里面才行,tmp = re.findall(r'#\n((.*\n)+?)#\n',a)
这样子得结果如下:tmp[0][0]就是想要得结果。
[('    a\n    b\n    c\n', '    c\n'), ('asde\nas\n', 'as\n')]
如果更简单得话,可以用\s\S来代替,tmp = re.findall(r'#\n([\s\S]+?)#\n',a),结果如下:
['    a\n    b\n    c\n', 'asde\nas\n']

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
3 [报告]
发表于 2017-05-11 17:09 |只看该作者
  1. re.findall(r'#\n([^#]+)#\n',a)
复制代码

论坛徽章:
0
4 [报告]
发表于 2017-06-19 10:05 |只看该作者
小买家95912 发表于 2017-05-11 16:35
忘记要把贪婪匹配放在里面才行,tmp = re.findall(r'#\n((.*\n)+?)#\n',a)
这样子得结果如下:tmp[0][0 ...

加我们的群问效率更高,这个群是一群工程师组建的面向初学者的
Python Linux 学习群, qq 群号: 278529278 ,
Php Linux 学习群, qq 群号: 476648701 ,
非商业性质,拒绝广告,只接收真正想学这方面技术的朋友,交流学习,申请请说明来自ChinaUnix

论坛徽章:
0
5 [报告]
发表于 2017-09-07 09:19 |只看该作者
用正则说明你是外行。
这是最简单的表达式分析。把单行#当成括号就行了

尽管正则有时候很方便(在这里是把问题复杂化了),但是尽量避免用正则,尤其是复杂的正则。因为它很低效。

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之青岛
日期:2017-06-26 18:30:0315-16赛季CBA联赛之四川
日期:2017-09-04 12:27:0315-16赛季CBA联赛之福建
日期:2018-02-09 14:28:3315-16赛季CBA联赛之同曦
日期:2018-04-17 12:43:3415-16赛季CBA联赛之浙江
日期:2018-07-14 13:27:4015-16赛季CBA联赛之吉林
日期:2018-09-13 15:48:2915-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06程序设计版块每日发帖之星
日期:2015-12-12 06:20:00
6 [报告]
发表于 2017-09-07 11:24 |只看该作者
回复 5# redspider

show code
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP