Je travaille sur ce bit de code qui vérifie une ligne de code ActionScript 3 pour l'existence d'un type (MovieClip, Sprite, ainsi que les classes personnalisées définies dans le classpath) qui se trouve dans une collection qui est être itéré.Java Regex Problème
for (String type: typeList) {
if (input.contains(type)) {
// dome something here
}
}
Le problème est, quelques-uns des noms de type personnalisé contiennent également le nom d'un autre type:
Custom type: fSceneController
Contains flash type: Scene
Ainsi, la méthode .contains ne fonctionnera pas correctement. Je pensais utiliser une regex à l'intérieur de la boucle où le modèle vérifie le type et vérifie qu'il n'y a pas d'a-zA-Z0-9 juste avant ou après le type.
Pattern p = Pattern.compile("<stuff here>"+ type + "<more stuff here>");
Quelqu'un peut-il me aider à déterminer ce que je dois mettre avant et après le type de sorte que le type lui-même peut être détectée distinctement des autres types qui peuvent contenir une partie du texte? Ou peut-être suggérer une méthode différente que je peux utiliser pour atteindre le même objectif?
wow je ne peux pas croire qu'il était aussi simple que cela. la puissance de regex ne connaît pas de limites. –
cool, heureux d'entendre que c'était le problème. Je pense que le \ b représente la limite. Il gère correctement la ponctuation. –
juste pour donner un peu de contexte, je suis en train d'écrire un actionscript 3 à haxe traducteur. faire aux différentes façons dont les langues manipulent les types et les importations, tous les types utilisés dans une classe doivent être détectés pour que les instructions d'importation puissent être étendues (haxe ne supporte pas les importations génériques), donc le problème original où d'autres types étaient détectés et importés qui n'étaient pas réellement utilisés. –