Lien vers la documentation devrait être s.findAll(/[0-9]{3}/) Ne fait aucune différence.... C'est exactement le même appel, juste avec une autre Chaîne de caractère de délimitation de la
s ="This is a simple string 234 something else here as well 4334"
regex =/([0-9]{3})/
matcher =( s=~ regex )if(matcher.matches()){
println(matcher.getCount()+" occurrence of the regular expression was found in the string.");
println(matcher[0][1]+" found!")}
Comme une note de côté:
m[0]is the first match object.
m[0][0]is everything that matched inthis match.
m[0][1]is the first capture inthis match.
m[0][n]is the n capture inthis match.
matcher.matches() est destinée à être utilisée pour la correspondance des chaînes complètes, à l'aide d'une syntaxe différente. J'ai juste utilisé if (matcher.getCount > 0) de vérifier pour un match à la place. le lien pour codehaus est cassé viens, il fixe
Ne devrait-elle pas être m[it][0] ? Désolé, mon erreur. J'ai mélangé avec la regexp qui capture les groupes. Votre solution est plus simple de voter 🙂 Btw. vous pouvez itérer sur les correspondances avec: m.each { print it + '\n' }. En utilisant cela , comment puis-je m'assurer que les regex au moins égalé quelque chose? Avant que je itérer sur le comparateur de.
Vous pouvez utiliser
CharSequence.findAll
:Documentation la plus récente de
CharSequence.findAll
devrait être
s.findAll(/[0-9]{3}/)
Ne fait aucune différence.... C'est exactement le même appel, juste avec une autre Chaîne de caractère de délimitation de la
OriginalL'auteur tim_yates
Vous devez utiliser la capture de groupes. Vous pouvez le vérifier groovy de la documentation à ce sujet:
http://mrhaki.blogspot.com/2009/09/groovy-goodness-matchers-for-regular.html
Par exemple, vous pouvez utiliser ce code:
Comme une note de côté:
matcher.matches()
est destinée à être utilisée pour la correspondance des chaînes complètes, à l'aide d'une syntaxe différente. J'ai juste utiliséif (matcher.getCount > 0)
de vérifier pour un match à la place.le lien pour codehaus est cassé
viens, il fixe
OriginalL'auteur Federico Piazza
Vous pourriez faire quelque chose comme cela.
Sortie ( Travail Démo )
m[it][0]
?Désolé, mon erreur. J'ai mélangé avec la regexp qui capture les groupes. Votre solution est plus simple de voter 🙂 Btw. vous pouvez itérer sur les correspondances avec:
m.each { print it + '\n' }
.En utilisant cela , comment puis-je m'assurer que les regex au moins égalé quelque chose? Avant que je itérer sur le comparateur de.
OriginalL'auteur hwnd