|
Bas de page | |
---|---|
Auteur | Sujet : Aide REGEXP pourtant simple |
Publicité | Posté le 27-10-2021 à 11:42:56 |
Harkonnen ModérateurUn modo pour les bannir tous | Le second "[^-]" rend la saisie d'un caractère autre que "-" obligatoire. Par conséquent, entre ça et le ".*" précédent, tu dois saisir au minimum 2 caractères pour que ta regex fonctionne. Tu peux donc virer la fin de ta regex qui devient juste :
Message édité par Harkonnen le 27-10-2021 à 12:36:03 --------------- J'ai un string dans l'array (Paris Hilton) |
jeromax | Merci de ta réponse mais cela ne fonctionne pas
Message édité par jeromax le 27-10-2021 à 13:12:31 |
mechkurt | Je ne sais pas si c'est pertinent mais y'a des fonctions dans le plupart des langages bcps moins couteuse en temps machine que de faire une regex.
--------------- D3 |
jeromax | C'est ce que j'ai fait oui |
kisscoolz |
Message édité par kisscoolz le 28-10-2021 à 12:50:36 --------------- http://lacabanedeladmin.trickip.net/ |
MaybeEijOrNot but someone at least |
--------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
TotalRecall | Marche pas, ça ne matche pas azdeazdadad-azeaze La question est mal posée côté exemples mais je pense qu'il veut matcher :
Et rejeter :
A confirmer. C'est vrai que ça semble trivial mais quand tu testes ben ça l'est pas Message cité 2 fois Message édité par TotalRecall le 29-10-2021 à 09:50:29 --------------- Topic .Net - C# @ Prog |
MaybeEijOrNot but someone at least |
--------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
jeromax |
|
Publicité | Posté le 29-10-2021 à 11:13:56 |
reroll | J'aurai plutot vu :
Message édité par reroll le 29-10-2021 à 11:48:17 |
TotalRecall | Ah ouais bien vu, c'est assez déroutant.
--------------- Topic .Net - C# @ Prog |
reroll | Bien vu pour le -a, vu que c'est pas dans le poste initial, je n'ai pas testé. |
jeromax | La règle est : ne doit pas commencer par un tiret et ne doit pas se terminer par un tiret (quelque soit le nombre de caractères)
|
TotalRecall | Sauf que même comme ça c'est ambigu, d'où la nécessité de fournir un vrai jeu de validation. Un truc formel qui ne laisse aucune place à l'interprétation, et directement copiable dans un outil genre regex101. Parce qu'en français et en informatique les opérateurs logiques ont une fâcheuse tendance à ne pas avoir le même sens. "ne doit pas commencer par un tiret et ne doit pas se terminer par un tiret" ça peut vouloir dire qu'on accepte TOUT, sauf ce qui commence et finit en même temps par un tiret. Et on ne sait pas si c'est un devoir scolaire (auquel cas on va lever un peu le pied ) ou un truc qui sert un besoin réel... Message édité par TotalRecall le 29-10-2021 à 14:49:23 --------------- Topic .Net - C# @ Prog |
jeromax | Effectivement, c'est mieux comme ça : ne doit pas commencer par un tiret OU ne doit pas se terminer par un tiret (tout autre caractère est autorisé)
|
reroll | Je vais être encore un peu plus pointilleux dans l'énoncé, mais j'imagine que c'est "ne doit pas commencer ou terminer par UN OU PLUSIEURS tiret" donc en gros
Message édité par reroll le 29-10-2021 à 15:47:49 |
jeromax | oui, tant qu'il y a un tiret au début ou à la fin, cela ne doit pas matcher |
reroll | Celui semble être le bon :
Message édité par reroll le 29-10-2021 à 16:31:28 |
jeromax | Joli ! !
|
TotalRecall | Pas mal le negative lookahead de ce qu'on ne veut pas, même si comme disait mechkurt c'est pas dément tout ça niveau perfs --------------- Topic .Net - C# @ Prog |
reroll | Clairement, je n'utiliserai les regex que pour des pattern complexes qui nécessiteraient trop de lignes de code pour un équivalent avec des opérations sur les String. |
gilou ModérateurModzilla |
Message édité par gilou le 02-11-2021 à 11:16:16 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
MaybeEijOrNot but someone at least | Cela rejoint un peu Gilou mais en plus clair je pense, il suffit de supposer les deux cas : Dans cet exemple, ça ne doit pas commencer par un "0" ou finir par un "a" (je nettoie les retours chariots pour le multi-ligne) : ^[^a0\r\n]$|^[^0\r\n]+[^a\r\n]+$ Ainsi en première partie (^[^a0\r\n]$) on retrouve le cas d'un seul caractère et donc l'union de tous les caractères par lesquels on ne veut pas que ça commence ou finisse ("0" et "a", ainsi que les retours chariots). https://regex101.com/r/soW12S/1 EDIT : cela rejoint complètement l'idée de Gilou en fait, simplement il y avait quelques corrections à apporter, dans la première partie il faut bien spécifier le $ et après dans la seconde partie pas besoin de spécifier "possiblement n'importe quel caractère" en utilisant le bons quantifiers sur les deux autres sous-groupes. Message édité par MaybeEijOrNot le 30-10-2021 à 10:03:41 --------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
gilou ModérateurModzilla | Tu as raison, quand j'ai écrit ^[^abcxyz]|[^abc].*[^xyz]$ j'avais bien sur en tête ^(?:[^abcxyz]|[^abc].*[^xyz])$ Message édité par gilou le 02-11-2021 à 11:17:30 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
jeromax | Rhooo merci à tous pour vos messages.
|
Publicité | Posté le |
Sujets relatifs | |
---|---|
[Algorithme][Aide] Partons de vrai et bien.../... | Aide niveau programmation débutant |
[Résolu] Pb de regexp avec Mysql | Besoin d'aide pour la conception de mon MCD |
[réglé] utiliser GTK(4) en Perl? Autre possibilité pour GUI simple? | aide pour script microsoft visual basic |
Aide Batch copy + rename (plusieurs dossiers a traiter en même temps) | aide écriture code c++ recherche et cumul de nombres |
Besoin d'aide pour créer un site B2B | [Résolu] aide pour manipulation fichier texte en powershell |
Plus de sujets relatifs à : Aide REGEXP pourtant simple |