我非常喜欢使用%
(模数/字符串格式化运算符),例如:
>>> fileName = "par1-%d_par2-%.1f_%s.dat" % (par1, par2, suffix)
par1-5_par2-0.1_hello.dat
是否有任何包/函数允许您反转此过程以从字符串中提取正则表达式模式? e.g。
>>> magicFunction(fileName, "par1-%d_par2-%.1f_%s.dat")
1, 0.1, 'hello'
答案 0 :(得分:1)
我不知道是否存在这样的功能。作为一种解决方法,您始终可以依赖正则表达式。
此正则表达式将匹配1
中的0.01
,hello
和par1-1_par2-0.01_hello.dat
。
par1-(\d+)_par2-([\d.]+)_(\w+)\.dat
请参阅example。
示例代码:
import re
p = re.compile(ur'par1-(\d+)_par2-([\d.]+)_(\w+)\.dat')
test_str = u"par1-1_par2-0.01_hello.dat"
re.search(p, test_str)