2011-09-01 87 views
1

爲什麼這不工作幫助和Lua模式

local filepath = "Name : Java DB 10.5.3.0 Vendor : Sun Microsystems, Inc Install Date : 20110429 Version : 10.5.3.0" 
local name,vendor,installdate, version = string.find(filepath,"^Name : (.*?) Vendor : (.*?) Install Date : (.*) Version : (.*)$") 

print(name) 
print(vendor) 
print(installdate) 
print (version) 

需要突破使用正則表達式的字符串: -

我有以下

"Name : Java DB 10.5.3.0 Vendor : Sun Microsystems, Inc Install Date : 20110429 Version : 10.5.3.0" 

字符串我需要得到Vendor :Sun Microsystems, Inc

我需要得到Install Date :20110429

我需要得到Version :10.5.3.0

輸入字符串於正則表達式

local strname = "Name : Java DB 10.5.3.0 Vendor : Sun Microsystems, Inc Install Date : 20110429 Version : 10.5.3.0 " 

輸出字符串

Name :Java DB 10.5.3.0 
Vendor :Sun Microsystems, Inc 
Install Date :20110429 
Version :10.5.3.0 
+0

是否要用正則表達式替換並生成一個新的字符串,或者只是捕獲名稱,供應商,安裝日期和版本? – erikH

+0

你的「輸出字符串」是否正確?它只顯示標籤,而不是實際值(與您的描述相反),所以我對您要求的內容有點困惑。 –

+0

只是從上面的字符串捕獲名稱,供應商,安裝日期和版本 – vic

回答

1

好了,我不明白你的輸出,但以下正則表達式可能是你可能想要的開始。 Visualized here

^Name : (.*?) Vendor : (.*?) Install Date : (.*?) Version : (.*?)$ 
+0

或者是一個貪婪的版本:'^ Name:(。*)Vendor:(。*)Install Date:(。*)Version: *)$' – erikH

+0

請讓我知道爲什麼這不起作用 – vic

+0

local filepath =「名稱:Java DB 10.5.3.0供應商:Sun Microsystems,Inc Install Date:2011042 9版本:10.5.3.0「 本地名稱,vendor,installdate,version = string.find(filepath,」^ Name:(。*?)Vendor:(。*?)Install Date:(。*?)Version: (*))$「) print(name) – vic