我在Visual Studio 2008中構建遊戲,爲了構建關卡,我將有兩種類型的文件(實際上超過了這些,但這兩個是唯一對我的問題重要的),我需要解析。一個將決定一個級別的內容,將是這個樣子:C#中的文件解析#
LevelName = 「樣品等級」
Object1Type = 「CustomObject」
Object1File = 「WideFloor_DF」
Object1Position = 600600
Object2Type = 「圓」
Object2Position = 550,500
Object2Mass = 5
等
另一個將決定對自定義對象的屬性,並且是這個樣子:
NAME = 「寬幅地板」
質量= 1
GeometryMap =「WideFloor_GM」
IsStatic =真正
等
我不是很熟悉的正則表達式(讀:我不喜歡他們,因爲外觀太像線路噪聲很容易理解的),我想知道如果有一個更簡單的方法比使用大量的正則表達式?
編輯:我知道我忘了一些東西!我真的很討厭xml文件,所以我真的不想使用它們(waaaaaaaay對我來說太冗長)。 編輯2:我喜歡我提出的格式,並且不希望改變。
有趣的是,下面提供的示例Robert Harvey需要的字符數少於「格式」,因爲它不需要重複「Object1」一遍又一遍。 – Talljoe 2009-06-11 05:51:24
那麼,我們已經編寫了一個完整的C#編譯器,而不使用任何正則表達式。我想你可以解析一個比C#更簡單的語言,而不使用正則表達式。解析語言是一個經過深入研究,常見的問題,因此有大量的文獻可供參考。首先編寫一個標記器,一個將字符流轉換爲標記流的設備。然後構建一個解析器,將令牌流轉換爲這些代表的任何數據結構的流。 – 2009-06-11 06:30:40
感謝您的想法,我可能會在某個時候做到這一點,但現在我會堅持使用XML。 – RCIX 2009-06-11 06:41:40