J'ai ce qui suit en python: où J'essaie donc de faire la même chose à Scala, en utilisant existe quelque chose de similaire à la fonction Python regex code> est une expression régulière et
string code> est une chaîne remplie. P>
regex.replaceallin (...) code> fonction au lieu de Python
sous code>. Cependant, je ne sais pas comment obtenir les sous-groupes qui correspondent. P>
groupe code> dans Scala? P> P>
3 Réponses :
Vous pouvez utiliser remplace les pièces assorties avec le premier groupe. P> p> remplailleLL code> et utiliser
$ n code>, où "n" est le groupe que vous souhaitez faire correspondre. Par exemple:
Dans le cas exemple, vous pouvez obtenir une nouvelle chaîne capturant tous les groupes n'est-elle pas? Comme dans mon exemple. Quelle serait la meilleure approche?
Peut-être que autre moyen de procéder est d'avoir un , puis correspond à la chaîne regex code>, par exemple:
: code> p>
newstring code> sera: p>
L'Scaladoc en a un exemple. Fournissez une fonction de correspondez code> au lieu d'une chaîne.
scala> val r = "a(b)(c+)".r
r: scala.util.matching.Regex = a(b)(c+)
scala> r.replaceAllIn(s, m => if (m.group(2).length > 3) "$1" else "$2")
res3: String = 123 b and cc
scala> r.replaceAllIn(s, m => s"$$${ if (m.group(2).length > 3) 1 else 2 }")
res4: String = 123 b and cc