Comment échapper à la barre oblique dans les matches de contrainte
Comment puis-je échapper à la slashes dans la regex lors de l'utilisation de la correspond à la contrainte? C'est ce que j'ai essayé:
constraints {
url (
matches: "^http://www.google.com/$"
)
}
Erreur: solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}"
constraints {
url (
matches: "^http:\/\/www.google.com\/$"
)
}
Erreur: unexpected char: '\'
OriginalL'auteur zoran119 | 2013-01-05
Vous devez vous connecter pour publier un commentaire.
Dans des chaînes définies avec des guillemets doubles (
".."
) groovy remplace les variables par des$
.Dans votre validation regex c'est ce qui provoque une erreur. Vous souhaitez utiliser le
$
pour une expression régulière et non pas pour des variables de remplacement. Pour éviter des variables de remplacement, vous pouvez définir des chaînes de caractères entre guillemets simples ('..'
)Vous n'avez pas besoin d'échapper à
/
lors de la définition de l'expression régulière dans une chaîne, mais vous vous devez échapper à.
. Dans une expression régulière.
correspond à tout caractère. Si l'expression régulière^http://www.google.com/$
correspondhttp://wwwAgoogleB.com/
.D'échapper à un caractère dans une chaîne, vous devez utiliser
\\
(la première\
est pour échapper à la deuxième\
). Donc l'expression suivante devrait fonctionner:Normalement, vous pouvez également utiliser la groovy de la syntaxe d'expression régulière (
/../
). Il ce cas, l'expression régulière serait ceVous n'avez pas besoin de double anti-slash pour s'échapper, mais, par conséquent, vous avez à s'échapper des barres obliques (parce qu'ils sont utilisés pour mettre fin à l'expression régulière). Mais comme je sais que cette syntaxe ne fonctionne pas avec les matchs de la contrainte de graal.
~
. En groovy,/foo/
est juste une syntaxe alternative pour les littéraux de chaîne. Le~
opérateur peut aller devant n'importe quelle chaîne de caractères (une seule cité, entre guillemets doubles ou slashy) comme une abréviation pourPattern.compile
à son tour la chaîne dans unPattern
.OriginalL'auteur micha