2015-04-03 22 views
0

我使用%(模/字符串格式化操作啄)的大风扇串正则表达式,例如:提取物用printf语法

>>> fileName = "par1-%d_par2-%.1f_%s.dat" % (par1, par2, suffix) 
par1-5_par2-0.1_hello.dat 

是否有任何包/功能,让你扭转这种过程从字符串中提取正则表达式模式?例如

>>> magicFunction(fileName, "par1-%d_par2-%.1f_%s.dat") 
1, 0.1, 'hello' 

回答

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) 
+0

我问的原因是因为我从来没有掌握正则表达式的语法;这显然我应该做...该网站是不可思议的,谢谢! – DilithiumMatrix 2015-04-03 14:20:58

+1

欢迎您光临:)有很多这样的网站,只要regex101.com提供Python,PHP和JavaScript即时代码生成。要学习正则表达式,你最好访问http://www.regular-expressions.info/,并测试你自己的,https://www.debuggex.com/也很好,因为它可视化所有的正则表达式步骤。 – 2015-04-03 14:23:14