Les RegExp, un plaisir (n'ayez pas peur, lisez quand même ce sujet svp 😭)

Bonjour à tous,

J’ai un petit problème avec ma RegExp. (Mais y’a moins que ça soit pas grand chose).
En gros, ma RegExp :

RegExp("(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+([a-z0-9][a-z0-9-\_\-\:\.]*[a-z0-9\_\-\.][\/]*)*").hasMatch(value);

Mon erreur :

Range out of order in character class(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+([a-z0-9][a-z0-9-_-:.]*[a-z0-9_-.][/]*)*

Apparement il y aurait un problème avec les « \ ». Comment je peux corriger ça ?

Tu as essayé de doubler les « \\ » ?

1 « J'aime »

Ne faut-il pas échapper les caractères d’échappement eux-mêmes ?

Merci @pol2095 & @fjacquemin pour votre réponse !
Effectivement c’est bien ça la solution, en réessayant ce matin, ça fonctionne correctement, à default d’avoir déjà essayé hier … :man_shrugging:t3:
(surement que j’avais du en oublier un hier, même en vérifiant plusieurs fois ^^ ou peut être un soucis de compilation, comme ce matin j’ai relancée mon appli).

Ça m’arrange qu’au final la solution soit pas si complexe ^^ Un topique peu inutile mais ça pourra toujours aider les débutants qui ne sont pas au courant qu’il faut échapper ces caractères.

Pour les RegEx, tu peux les tester sur https://regex101.com

Oui c’est la que je l’ai faite mais le soucis c’est que sur regex101 ça

(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+([a-z0-9][a-z0-9-\_\-\:\.]*[a-z0-9\_\-\.][\/]*)*

Ça fonctionne … Mais pas sur Dart car il faut échapper les caractères

Tu peux aussi tu utiliser la forme brute des chaines de caractères en dart avec r'Ma chaîne qui peut contenir des \ dedans' et donc ne pas échaper tes \ dans ton RegExp

1 « J'aime »

Ah oui ! J’avais vue ça dans des forums, je me demandais à quoi ça servait parce que c’est pas un symbole en Regex ça ^^

:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
:white_check_mark: Double solution sur ce topic alors ! :white_check_mark:
:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:

1 « J'aime »