找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5166|回复: 2

[已解决] (已解决)正则 search方法没有返回第一个符合条件的字符串

4

主题

9

帖子

9

积分

贫民

积分
9
SHocker77 发表于 2016-10-14 14:44:40 | 显示全部楼层 |阅读模式

复制代码
string2="操作任务: 3号主变压器带10kVB、C母全部负荷,2号主变压器停电,2号主变压器、162-2隔 离开关、170、802断路器由运行状态转换为检修状态,110kVB母由运行状态转换为检修状态 顺序 操 作 项 目 √ 时间 顺序 、162-2隔 离开关 顺序 "
reg_3 = re.compile(r'操作任务:(.*)顺序')
u1 = ' '.join(u.split())
match_3 = reg_3.search(string2)
if match_3:
        print match_3.group(1).encode('gbk')
else:
        print 'not match'

打印结果:
  1. 3号主变压器带10kVB、C母全部负荷,2号主变压器停电,2号主变压器、162-2隔 离开关、170、802断路器由运行状态转换为检修状态,110kVB母由运行状态转换为检修状态 <font color="#ff0000">顺序</font> 操 作 项 目 √ 时间 <font color="#ff0000">顺序 </font>、162-2隔 离开关
复制代码
可以看到,string2一共有三个“顺序”,结果中包含了前两个“顺序”,求解,我只需要匹配到第一个“顺序”就结束,并打印出结果,现在结果是一直到最后一个“顺序”

回复

使用道具 举报

4

主题

9

帖子

9

积分

贫民

积分
9
SHocker77  楼主| 发表于 2016-10-14 16:43:19 | 显示全部楼层
感谢Pythontab官方4群的小伙伴提供的解决办法:
r'操作任务:(.*?)顺序'

(1)数量词的贪婪模式与非贪婪模式
正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字 符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式”ab*”如果用于查找”abbbc”,将找到”abbb”。而如果使用非贪婪的数量 词”ab*?”,将找到”a”。
注:我们一般使用非贪婪模式来提取。
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-10-14 19:54:17 | 显示全部楼层
SHocker77 发表于 2016-10-14 16:43
感谢Pythontab官方4群的小伙伴提供的解决办法:
r'操作任务:(.*?)顺序'

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表