我目前正在編寫腳本編輯應用程序在C#編輯遊戲腳本。我希望能夠加載腳本文件並獲取NPC對象的名稱和腳本內容。該腳本是這樣的:正則表達式:解析C#中的腳本#
INSTANCE PC_Thief(NPC_DEFAULT)
{
//-------- primary data --------
name = "Diego";
Npctype = NPCTYPE_FRIEND;
guild = GIL_STT;
level = 999; // real 25, aber 999 damit er nicht vor dem Troll flieht!
voice = 11;
id = 1;
flags = NPC_FLAG_IMMORTAL;
//-------- visuals --------
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
// Body-Mesh Body-Tex Skin-Color Head-MMS Head-Tex Teeth-Tex
Mdl_SetVisualBody (self,"hum_body_Naked0", 0, 2, "Hum_Head_Thief", 15, 4, STT_ARMOR_H);
//--------- abilities --------
attribute[ATR_STRENGTH] = 70;
attribute[ATR_DEXTERITY] = 90;
attribute[ATR_MANA_MAX] = 0;
attribute[ATR_MANA] = 0;
attribute[ATR_HITPOINTS_MAX]= 340;
attribute[ATR_HITPOINTS] = 340;
protection[PROT_FIRE] = 1000;
Npc_SetTalentSkill (self, NPC_TALENT_PICKPOCKET,1);Npc_SetTalentValue(self,NPC_TALENT_PICKPOCKET,60);
Npc_SetTalentSkill (self, NPC_TALENT_SNEAK, 1);
Npc_SetTalentSkill (self, NPC_TALENT_PICKLOCK, 1);Npc_SetTalentValue(self,NPC_TALENT_PICKLOCK,60);
Npc_SetTalentSkill (self, NPC_TALENT_MAGE, 6);
Npc_SetTalentSkill (self, NPC_TALENT_1H,1);
Npc_SetTalentSkill (self, NPC_TALENT_BOW,1);
//-------- inventory --------
EquipItem (self, Diegos_Bogen);
EquipItem (self, ItMw_1H_Sword_04);
CreateInvItems (self, ItAmArrow, 100);
//-------- ai --------
daily_routine = Rtn_PreStart_1;
fight_tactic = FAI_HUMAN_MASTER;
self.aivar[AIV_IMPORTANT] = TRUE;
senses = SENSE_SEE|SENSE_HEAR|SENSE_SMELL;
};
,這裏是我使用正則表達式:
Regex ireg = new Regex("(instance|prototype)\\s+(?<ins>[^\\s]+).*\\{(?<text>[^(\\};)]+)\\};", RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase | RegexOptions.Singleline);
然而,當我運行這個Rgex,我拿到小組第一,但所有的組包含有2個換行符。 我在做什麼錯?我將正則表達式設置爲單行模式。也會匹配\ n。這是否是一個錯誤的方式?誰能幫忙?
謝謝。
下一次,你問一個問題,請在指定你想要更詳細的。你甚至沒有提到你想要作爲兩個捕獲組的輸出結果。更好的問題得到更好的答案謝謝:) – Jaskirat 2009-10-31 16:04:57