2013-11-27 165 views
-1

什麼是解析文本(配置文件),其中有向度「樣式」設置變量最好的方法:解析配置文件

var_name = "Content" // comment 
var_name2 = Content // comment 
set var_name3 "Content" // comment 
Var_name4=Content // comment 

我只需要VAR_NAME和內容,忽略「設置」和「//。 ..」

+2

爲什麼你的配置風格語法如此自由?選擇一種語法並要求用戶關注它。 – Barmar

+0

到目前爲止你研究了什麼?你爲什麼不把它編輯成一致的樣式,只使用許多ini解析器中的一個? – mario

+0

使用xml作爲你的配置語法自由形式的文本文件configs是解析惡夢。結構化的文本文件,如XML是完美的 – Dave

回答

2

您可以使用正則表達式來解析這些:

^\s*(?:set\s+)?(\w+)(?:\s*=\s*)?"?([^"]*?)"?\s*(?://.*)?$ 

$1是變量名,$2是值。

DEMO

這有一個缺陷:如果你把//引述裏面的內容,它將作爲一個註釋的開始進行治療。

+0

謝謝!但我不能測試這個使用PHP:'preg_match('/^\ s *(?:set \ s +)? (?:\ * * \'s *)?「?([^」] *?)「?\ s *(?://.*)?$ /',$ test,$ match);'使用'^ \ s *(?:set \ s +)?(\ w +)(?:\ s * = \ s *)?「?([^」] *?)給出警告:未知修飾符'「' 「?\ s *(?://.*)?$':未知的修飾符'」' – AdamSmith

+0

在正則表達式中使用與'/'不同的分隔符,或者在正則表達式中使用'/' – Barmar

+0

Works,thanks @巴爾馬:)。 – AdamSmith