使用re(雷鬼)在python中查找模式

时间:2016-08-30 15:11:55

标签: python regex python-2.7

我正在尝试构建正则表达式:

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

这将返回以下内容:

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

但我只想:

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

这可能只使用re?

1 个答案:

答案 0 :(得分: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']