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

mel*_*mel 2 python regex python-2.7

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

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

这将返回以下内容:

['/some/path/', 'variable', '/', 'inside', '/', 'it']
Run Code Online (Sandbox Code Playgroud)

但我只想:

['variable', 'inside', 'it']
Run Code Online (Sandbox Code Playgroud)

这可能只使用re吗?

Wik*_*żew 5

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

%([^%]+)%
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

这将匹配a %,然后捕获1 +以外的字符而不是%组1,然后匹配尾随%.如果您的字符串中只包含单词字符%,则可以替换[^%]+\w+.

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

Python演示:

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