标题很差-如果您觉得有帮助,请随时更新
我正在尝试返回列表[<str1>, <str2>,...,<strX>]
在以下字符串中:
'%%<str1>%%_Anything_Can_Be_Here_%%<str2>%%
'
以下代码可以工作,但是如果该行中'%%
'的数量大于2,则它将占用第一和最后一组'%%
'之间的所有内容。
>>> import re
>>> str = '%%nas_ip_address%%'
>>> re.match('%%(.*)%%', str, re.DOTALL).group(1)
'nas_ip_address'
>>> str = '%%nas_ip_address%%:/vx/%%sfs_storage_pool%%'
>>> re.match('%%(.*)%%', str, re.DOTALL).group(1)
'nas_ip_address%%:/vx/%%sfs_storage_pool'
>>> re.match('%%(.*)%%', str, re.DOTALL).groups()
('nas_ip_address%%:/vx/%%sfs_storage_pool',)
有没有办法使用正则表达式从字符串中提取
['nas_ip_address', 'sfs_storage_pool']
?我想解析一个很大的文件,但是性能不是问题,因为它不是用于生产的 最佳答案
如果要匹配同一字符串中的多个结果,可以使用re.findall()
尝试这个:
import re
str = '%%nas_ip_address%%:/vx/%%sfs_storage_pool%%'
re.findall('%%(.*?)%%', str, re.DOTALL)
关于python - 正则表达式在同一定界符之间匹配多个结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47440467/