2011-07-22 2 views
1

Je travaille sur un moteur de jeu simplement 2D avec un langage de script simple. Voici un exemple comment le script devrait ressembler à:Trouver une chaîne dans une chaîne, en utilisant le contexte (Script)

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

Le problème, je l'ai, comment obtenir le « assetname » de la première ligne (qui ne doit pas être la première ligne). Quelle est la meilleure façon de procéder? Expressions régulières (ne les utilisait jamais, et Google n'avait aucune aide sur la façon dont je pourrais les utiliser)? Je veux l'autoriser dans la langue à terminer une commande avec '>' ou avec le début d'une nouvelle commande '<'. Ainsi, la chaîne serait définie comme ceci:

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

Merci à l'avance. :)

+5

Je suggère d'utiliser un format standard pour que vous n'ayez pas à tout écrire (json, xml, yaml, ini, etc.) –

+2

Pourquoi essayez-vous d'inventer un nouveau langage XML? Je doute sérieusement que vous n'ayez trouvé aucune aide sur les expressions régulières. Je sais pertinemment quand j'ai fait des recherches il y a 6 mois que j'ai trouvé RegexBuddy. –

Répondre

0

Je prêter attention aux commentaires ci-dessus d'abord :)
Mais, si elle est encore vous voulez aller votre chemin, voici comment (en 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(); 

Jouer avec ce code dans la débogueur, de sorte que vous pouvez le faire correspondre à vos besoins.
Si nécessaire, en savoir plus here ou here sur les expressions régulières.
Espérons que cela aide.

Questions connexes