[R] Quick reference et Regex ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

[R] Quick reference et Regex ?

#1

Message par yohan8 »

Bonjour,

J'ai l'habitude d'utiliser regex101.com pour mettre en place mes patterns.
Aujourd'hui après que regex101 me confirme mon pattern mais que Autoit ne match rien du tout j'ai découvert qu'il éxistait des quick reference qui s'applique aux regex, du moins sur le site regex101.com.

https://regex101.com/r/dE8uJ1/146
https://regex101.com/r/dE8uJ1/143

J'ai installé la nouvelle version d'Autoit sur mon poste de travail, format portable.
Comment Autoit gère ces quick reference de Regex ?

[codeautoit]#include <array.au3>

$shablon_txt = FileRead("test.txt") ;voir les liens regex101 pour le contenu du texte

Dim $shablon_question[3] = ['RIJDEN\?', 'BESTUURDER', 'POSTCODE\)']
Dim $shablon_reponse[3]

For $i = 0 to 2
ConsoleWrite($shablon_question[$i]&@crlf)
$reponse = StringRegExp($shablon_txt, $shablon_question[$i]&'\s*(.+?)(?:\R+\d|\R*$)', 1)

if IsArray($reponse) Then
ConsoleWrite($reponse[0]&@crlf)
$shablon_reponse[$i] = $reponse[0]
Else
ConsoleWrite("no match : "&$reponse&@error&@extended&@crlf)
EndIf
Next

_ArrayDisplay($shablon_reponse)[/codeautoit]
Modifié en dernier par yohan8 le jeu. 16 juin 2016 17:03, modifié 1 fois.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2282
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] des versions de Regex ?

#2

Message par jchd »

Dans ces exemples, la question n'est pas la version de PCRE utilisée. La différence provient des options différentes utilisées.

Ah, changement de cible en cours de route !
La "Quick Reference" proposée par le site est un mémento des méta-caractères de PCRE les plus courants.
Modifié en dernier par jchd le jeu. 16 juin 2016 16:43, modifié 1 fois.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Quick reference et Regex ?

#3

Message par yohan8 »

Effectivement, j'ai corrigé le premier post.

Comment Autoit gère ces options :

MODIFIER QUICK REFERENCE
g modifier: global. All matches (don't return on first match)
m modifier: multi-line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)
i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
x modifier: extended. Spaces and text after a # in the pattern are ignored
X modifier: eXtra. A \ followed by a letter with no special meaning is faulted
s modifier: single line. Dot matches newline characters
u modifier: unicode: Pattern strings are treated as UTF-16. Also causes escape sequences to match unicode characters
U modifier: Ungreedy. The match becomes lazy by default. Now a ? following a quantifier makes it greedy
A modifier: Anchored. Pattern is forced to ^
J modifier: Allow duplicate subpattern names
All flags with further information can be found in the quick reference.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2282
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Quick reference et Regex ?

#4

Message par jchd »

Voir l'aide de StringRegExp. Les options sont passées sous la forme (?im-sx) dans le pattern.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Quick reference et Regex ?

#5

Message par yohan8 »

Merci, j'ai activé le multiline avec (?m) et tout fonctionne
https://regex101.com/r/dE8uJ1/147
Répondre