2011-07-22 45 views
1

我正在使用简单的脚本语言编写简单的2D游戏引擎。 下面是一个例子脚本应该怎么样子:使用上下文在字符串中查找字符串(脚本)

<a=AssetName> 
<scripthere> 
<script 
<dialogue 
contiue dialogue 
<a2=AlternativeAssetName 
<script> 

的问题,我有,是如何得到“ASSETNAME”出来的第一行(这一定不能是第一行)。做这个的最好方式是什么?正则表达式(从来没有使用过,谷歌没有帮助我如何使用它们)?

我想让它在语言中用'>'结束命令,或者用新命令'<'开始结束命令。 因此字符串将被定义是这样的:

"<a=" + (string)AssetName + (">" || "<") 

预先感谢您。 :)

+5

我建议使用这种标准格式,所以你不必编写自己的所有东西(json,xml,yaml,ini等) –

+2

你为什么要发明一种新的XML语言?我严重怀疑你无法找到正则表达式的帮助。 6个月前我做了一些研究,我知道有一个事实,我找到了RegexBuddy。 –

回答

0

我会注意上面的第一:)
的意见但是,如果你还是想要走你的路,这里是如何(在C#):

string pattern = @"\< *a\=([^\<\>]+) *[\<\>]"; 
Regex r = new Regex(pattern, RegexOptions.IgnoreCase); 
Match m = r.Match(tosearch); 
if (m.Success) 
{ 
    foreach (Group g in m.Groups) 
    { 
    Console.WriteLine("Group: " + g.Value); 
    } 
} 
else 
{ 
    Console.WriteLine("No matches"); 
} 
Console.WriteLine(); 

//To keep the console window open after running the application, add the following lines of code: 
System.Console.WriteLine("Press any key to Continue..."); 
System.Console.ReadLine(); 

玩这个代码在调试器,所以你可以使它适合你的需求。
如果需要,请阅读有关正则表达式的更多herehere
希望这有助于。