Je ne sais pas comment expliquer le problème en anglais clair, alors je me aide avec l'exemple de Regexp. J'ai quelque chose de similaire à celui-ci (l'exemple est à peu près simplifié): Ce modèle correspond à la fois à ces lignes: p> le Le motif contient 3 groupes: le premier correspond à une ligne, le 2ème correspondant au premier numéro dans la ligne et le 3ème correspond à un deuxième numéro dans la ligne. p> est-il possible d'obtenir tous ces numéros? Le matcheur n'a que 3 groupes. Le premier retourne SSCCE: p> 99 - 55 code>, le 2e - 99 code> et le 3ème one - 55 code>. P>
3 Réponses :
EDIT: En réalité, ce n'est pas http: //download.oracle.com/javase/7/docs/api/java/util/regex/matcher.html#find%28%29 p>
Voici un exemple de l'utilisation: p>
http://download.oracle.com/javase/tatuuteur/ Essential / Regex / Test_Harness.html P> Si Strike> Je suis Pas Strike> erroné (une possibilité distincte), alors chaque fois que vous appelez matcher.matches () code>, Il met à jour avec la prochaine correspondance. Strike> SO, fondamentalement, modifiez le si (correspondeur.matches ()) code> dans un tandis que (correspondeur.find ()) code>, et vous êtes prêt à partir. P>
correspondant code>, c'est trouver code> qui fait cela: p>
Est-ce correspondant.Matchs () ou Matchers.Find () qui renverra chaque fois que vous l'appelez? (ou les deux!)
J'ai répondu à une question hier sur correspondant code> et rappelez-le, donc je suis assez sûr de cela. Trouver CODE>, je ne sais malheureusement pas.
Je ne peux pas le faire fonctionner. Avez-vous un code qui a succédé à cette tâche?
Hélas, je n'ai pas d'environnement de développement Java approprié mis en place, donc je ne peux pas tester de code. Cependant, il semble que Josh.trow était correct. trouver () code> correspondra au prochain ... Match.
Vous essayez de faire correspondre chaque ligne séparément?
Retirez le + pour correspondre à une seule ligne et modifier: P>
while (matcher.matches()) {
Une remarque de plus sur la réponse de Mike Caron: le programme ne fonctionnera pas si vous remplacez «si» avec «si» et utilisez »et utilisez« Trouver »au lieu de« Match ». Vous devez également modifier l'expression régulière: le dernier groupe avec le "+" doit être supprimé, car vous souhaitez rechercher plusieurs occurrences de ce modèle, et non pour une occurrence d'un (..) + groupe.
pour clarté, il s'agit du programme final qui fonctionne: p> Il vous donnera trois groupes pour chaque ligne, où le premier groupe est la ligne entière et les deux groupes suivants contiennent chacun un numéro. C'est un bon tutoriel qui m'a aidé à mieux comprendre: http: //Tutorials.jenkov. COM / JAVA-REGEX / MATCHER.HTML P> P>