J'essaie de créer un analyseur de texte dans AS3, qui trouve des mots entre [crochets] et les remplace par un autre ensemble de mots. Jusqu'à présent, j'ai réussi à créer le style RegEx actuel, mais il ne cesse de cracher deux mots - un dans les parenthèses, et un sans. De même, je n'arrive pas à le faire fonctionner en continu jusqu'à ce que toute la phrase ait été analysée, et que le résultat soit nul.AS3: RegEx obtenant des mots entre crochets
public function parseWords(words):String {
var replacer:String = words;
var finder:RegExp = new RegExp("\\[([a-zA-Z0-9]+)\\]");
var resulter:Object = finder.exec(words);
trace(resulter[0] == "[Rabbit]");
//trace (replacer);
trace (resulter);
return replacer;
}
résultats de trace; true [Lapin], Lapin
Des idées?
Pas tout à fait. J'essaie de faire en sorte que si quelque chose comme [Lapin] montre p, je peux appeler une autre classe pour décrire le lapin, donc dans la chaîne littérale étant envoyé, j'écrirais "Il avait un [lapin]", et dans le analyseur, il verrait [lapin] et ensuite le remplacer par pc.getPet() ;. La dernière partie que je peux comprendre, c'est de trouver la regex pour trouver que je ne peux pas. –
@AlexMarc Donc, vous voulez d'abord obtenir une liste de toutes les correspondances, puis envoyer ces correspondances à un composant pour savoir quoi en faire, puis faire en sorte que ce composant crée une nouvelle chaîne à partir du résultat? – Marty
bien-- non. Pendant que le code s'exécute, il continue d'exécuter la boucle exec jusqu'à ce qu'il renvoie null. Il prend la valeur 0 et le remplace en fonction de ce que le composant. Cependant, peut-être que votre chemin serait beaucoup plus efficace. –