python 正则表达式,重复匹配,提取相同符号中间的内容问题?

哥哥回来了 发布于 2018/08/10 13:36
阅读 771
收藏 2

a = '1sss%2sss%3sss%4sss%5sss%6sss%'

我想提取所有 % 中间的内容,

想要得到['%2sss', '%3sss', '%4sss', '%5sss', ‘%6sss’]

 

代码如下:

a = '1sss%2sss%3sss%4sss%5sss%6sss%'

re.compile(r'(%.*?)%').findall(a)

结果如下:

['%2sss', '%4sss', '%6sss']

(中间内容是可变的,但内容中不会有 % )

加载中
0
wei2011
wei2011

%之间只会是字母和数字吧,如果是这样写就行了:
re.compile(r'(%\w+)').findall(a)

0
哥哥回来了

厉害!  那如果中间除了 %  别字符都可能有呢

0
angoal
angoal

博大精深呀

0
old_big
old_big

中间有任何多于1个的字符都可以:

re.compile(r'%.+?(?=%)').findall(a)

他们都叫我“正则神童” :)

old_big
old_big
回复 @哥哥回来了 : 两天?这成本也挺高,我还真是“神童”。这个正则表达式是属于稍微有一点点难度的。给你提供点关键词,如果有兴趣可以自学: 1. 非捕获组 2.勉强匹配
哥哥回来了
!!搞了我两天了,完美解决!谢过大神!
0
拾光TM
拾光TM
你这用啥非贪婪匹配啊
返回顶部
顶部