Une regex pour une énigme
Résolu/Fermé
FoNeTiK
Messages postés
11
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
14 juillet 2018
-
13 juil. 2018 à 13:38
Utilisateur anonyme - 14 juil. 2018 à 08:47
Utilisateur anonyme - 14 juil. 2018 à 08:47
A voir également:
- Une regex pour une énigme
- Voici du code ascii : 37 2d 3f 3d 31 décodez-le et résolvez l'énigme trouvée. - Guide
- Voici du code ascii : 34 2d 3f 3d 31 décodez-le et résolvez l'énigme trouvée. - Forum Loisirs / Divertissements
- Enigme 91 layton et l'etrange village - Forum Jeux vidéo
- Polyland énigme ✓ - Forum Loisirs / Divertissements
- Énigme - Forum Loisirs / Divertissements
2 réponses
Utilisateur anonyme
13 juil. 2018 à 14:20
13 juil. 2018 à 14:20
Bonjour
De tutos sur les regex, il y en a des tonnes.
Si tu codes habituellement en php, par exemple, tu tappes « regex php tuto » et tu vas trouver ton bonheur.
Maintenant, ça n’est pas un outil de combinaison, c’est un outil de recherche et d’extraction.
Il faut donc lui fournir un texte, un liste de mots, bref de l’ascii en source et ça va te sélectionner toutes les occurrences qui correspondent à ta « requête ».
Je peux te faire un exemple avec tes critères, mais un peu plus tard dans l’après-midi.
De tutos sur les regex, il y en a des tonnes.
Si tu codes habituellement en php, par exemple, tu tappes « regex php tuto » et tu vas trouver ton bonheur.
Maintenant, ça n’est pas un outil de combinaison, c’est un outil de recherche et d’extraction.
Il faut donc lui fournir un texte, un liste de mots, bref de l’ascii en source et ça va te sélectionner toutes les occurrences qui correspondent à ta « requête ».
Je peux te faire un exemple avec tes critères, mais un peu plus tard dans l’après-midi.
Utilisateur anonyme
13 juil. 2018 à 23:30
13 juil. 2018 à 23:30
Je crois que j'ai trouvé
La fin tu la reconnais.
Au début, il y a un bloc qui va vérifier que chaque motif n'est pas répété.
Donc si PO est présent 2 fois, la capture s'arrête, idem pour TS, SAN etc..
Seul bémol, ça ne marche que sur un texte complet, il faut donc lui faire tester les mots un par un et non un fichier d'un coup.
Cela peut s'avérer plus long à l'exécution.
Pour gagner un rapidité, tu peux peut-être le faire en 2 fois
et
^(?!.*PO.*PO)(?!.*TS.*TS)(?!.*SAN.*SAN)(?!.*DES.*DES)(PO|TS|IM|SAN|DES)+$
La fin tu la reconnais.
Au début, il y a un bloc qui va vérifier que chaque motif n'est pas répété.
(?!pattern)signifie que la capture s'arrête si le pattern est vérifié plus loin dans le texte
.*PO.*POsignifie n'importe quoi de longueur de 0 à n et PO et n'importe quoi de longueur de 0 à n et PO, donc PO répété et placé n'importe où dans le texte.
Donc si PO est présent 2 fois, la capture s'arrête, idem pour TS, SAN etc..
Seul bémol, ça ne marche que sur un texte complet, il faut donc lui faire tester les mots un par un et non un fichier d'un coup.
Cela peut s'avérer plus long à l'exécution.
http://regexstorm.net/tester?p=%5e%28%3f!.*PO.*PO%29%28%3f!.*TS.*TS%29%28%3f!.*SAN.*SAN%29%28%3f!.*DES.*DES%29%28PO%7cTS%7cIM%7cSAN%7cDES%29%2b%24&i=SANSAN
Pour gagner un rapidité, tu peux peut-être le faire en 2 fois
\b(PO|TS|IM|SAN|DES)+\bsur tout le fichier
et
^(?!.*PO.*PO)(?!.*TS.*TS)(?!.*SAN.*SAN)(?!.*DES.*DES)(PO|TS|IM|SAN|DES)+$sur les résultats de la première Regex
FoNeTiK
Messages postés
11
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
14 juillet 2018
14 juil. 2018 à 00:07
14 juil. 2018 à 00:07
Ah oui pas bête ! Merci beaucoup pour ce long code qui a dû te prendre du temps.
13 juil. 2018 à 14:50
Modifié le 13 juil. 2018 à 15:05
c’est a et b et c.
Pour le ou, ça depend, pour un caractère ça peut être ou , pour plusieurs caractères c’est
Dès que je rentre et que j’ai accès à mon pc, je te montre.
13 juil. 2018 à 15:46
Ça me donne presque ce que je veux. Le seul problème c'est que je me retrouve avec des mots comme POPO ou SANSAN (wtf ?). J'aimerais éviter la répétition d'un même motif. Si je mets une seule fois PO, j'aimerais qu'il n'apparaisse qu'une fois au maximum.
Modifié le 13 juil. 2018 à 17:40
Mais si par exemple tu charges un fichier de mots, il est peut-être plus judicieux d'utiliser \b (limite de mots).
Un exemple à cette adresse:
Pour la non-répétition ça se complique. Je vais y réfléchir.
13 juil. 2018 à 17:57
Là ça ne cherche que les mots de 2 motifs, qui commencent par PO ou DES