2015-04-03 65 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