2016-08-30 22 views
2

我试图建立一个正则表达式:使用重新寻找在python模式(雷鬼)

mystring = /some/path/with/%variable%/%inside%/%it%/ 
re.findall("[^\s%]+", allocine_spec[key]) 

而这个返回以下内容:

['/some/path/', 'variable', '/', 'inside', '/', 'it'] 

但我只想:

['variable', 'inside', 'it'] 

是否有可能仅使用re?

回答

5

你需要一个更简单的正则表达式:

%([^%]+)% 

regex demo

这将与%,然后捕获1+比%其他字符到第1组,然后将匹配一个尾随%。如果您的字符串仅包含%之间的单词字符,则可以用\w+替换[^%]+

请注意,re.findall只返回捕获的子串,如果在模式中定义了捕获组。

Python demo

import re 
mystring = "/some/path/with/%variable%/%inside%/%it%/" 
print(re.findall("%([^%]+)%", mystring)) 
# => ['variable', 'inside', 'it']