使用printf语法提取子字符串正则表达式

时间:2015-04-03 14:11:23

标签: python regex string formatting

我非常喜欢使用%(模数/字符串格式化运算符),例如:

>>> 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'

1 个答案:

答案 0 :(得分:1)

我不知道是否存在这样的功能。作为一种解决方法,您始终可以依赖正则表达式。

此正则表达式将匹配1中的0.01hellopar1-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)