社区
脚本语言
帖子详情
求正则表达式牛人 怎样获得截获了多次的组的所有子串
太上绝情
2013-05-23 11:51:55
Match.group(i)方法说明里说
如果一个组被截获了多次 则 截获了多次的组返回最后一次截获的子串
比如"(\w)*"这样在组后跟数量词就会造成一个分组被截获多次,我想拿到某一组全部被截获的子串,而不仅是最后一次的该怎么做。
...全文
329
6
打赏
收藏
求正则表达式牛人 怎样获得截获了多次的组的所有子串
Match.group(i)方法说明里说 如果一个组被截获了多次 则 截获了多次的组返回最后一次截获的子串 比如"(\w)*"这样在组后跟数量词就会造成一个分组被截获多次,我想拿到某一组全部被截获的子串,而不仅是最后一次的该怎么做。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
胡小来
2014-09-11
打赏
举报
回复
引用 4 楼 bjrxyz 的回复:
恩,自己实现了。可惜python为什么不内置呢?
re.findall 就是内置的,可能你的正则对每项的匹配有重叠。 比如对 "abc" 进行findall。 用正则 “(.)” 你会得到 [ "a", "b", "c" ] 但如果正则是 “(.).*” 你就只能得到 ["a"] 了
胡小来
2014-09-11
打赏
举报
回复
嗯 #3 楼的办法靠谱,等于是自己实现了一个 re.findall ~ 不如直接用内置的 re.findall ,但前提是你的正则对每一项的匹配是不重叠的(见文档上:Return all non-overlapping matches)。
太上绝情
2013-05-31
打赏
举报
回复
恩,自己实现了。可惜python为什么不内置呢?
简单的机械键盘
2013-05-26
打赏
举报
回复
我不写完整的代码了,在re库里面有search函数,返回一个re对象,具体对象类型,好像是_sre.SRE_Match类型,但是这无所谓,在这个对象,可以引用start,end函数,返回匹配字符串的起始,结束的位置。你只需要 x=re.search(pattern,string) if x: print string[x.start():x.end()] 你可以利用以上函数写一个自定义函数,每次从end返回的位置,开始不断匹配,直到不匹配或到字符串结尾。可以输出所有的匹配结果
crifan
2013-05-24
打赏
举报
回复
帮你找到解决思路了:
【已解决】Python中的正则re查找中,从多个匹配的组中获得所有的匹配的值
Johnson518
2013-05-24
打赏
举报
回复
引用 1 楼 crifan 的回复:
帮你找到解决思路了:
【已解决】Python中的正则re查找中,从多个匹配的组中获得所有的匹配的值
您的答复真简洁啊~
相关推荐
car.hex
car.hex
G-PCCV6版本mpeg-pcc-tmc13-masterV6
G-PCC点云编码V6版本
goanzhuangqi4.8.7 (1).apk
goanzhuangqi4.8.7 (1).apk
网络基础概念.md
网络基础概念.md
利用多尺度小波分解侦测时间序列中奇异点位置.zip
【数学建模】数模美赛各种模型算法matlab代码实现【F题常见题型】
发帖
脚本语言
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
3.7w+
社区成员
3.4w+
社区内容
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2013-05-23 11:51