piwiii
Messages postés2Date d'inscriptionmercredi 29 novembre 2006StatutMembreDernière intervention30 novembre 2006
-
30 nov. 2006 à 10:48
cs_TropNul
Messages postés340Date d'inscriptiondimanche 18 septembre 2005StatutMembreDernière intervention22 octobre 2009
-
5 déc. 2006 à 03:42
bonjour, tlm voila je cherche a mettre une variable avec la methode des
expressions regulieres j'orais voulu savoir si c'etais possible de
corriger les eventuels erreurs ou kand bien meme regarder la structure
de celui ci car j'ai vraiment du mal voici mon bout de code merci
d'avance !
cmd: /berk artist-titre-Sampler-2006-TEST
alias berk {
set %word $1
var %halton1 = sbd|web|dab|sat|radio|line|live|ssl|sampler|demo|cable|fm
if ($regex(FIRST,%word,/( $+ %halton1 $+ )/i) 1) { var %src1 $regml(FIRST,1) }
cs_TropNul
Messages postés340Date d'inscriptiondimanche 18 septembre 2005StatutMembreDernière intervention22 octobre 2009 5 déc. 2006 à 03:40
élo ^^
Si je ne me suis pas trompé, ton code serait équivalent au suivant:
Alias berk {
VAR %word == $1-
VAR %halton1 = /(sbd|web|dab|sat|radio|line|live|ssl|sampler|demo|cable|fm)/i
IF $regex(FIRST,%word,%halton1) {
VAR %src1 = $regml(FIRST,1)
VAR %check1 = /([\w-] $+ %src1 $+ [\w-])|([\w_] $+ %src1 $+ [\w_])|([\w-] $+ %src1 $+ [\w_])|([\w_] $+ %src1 $+ [\w-])|([\w] $+ %src1 $+ [\w\)])|([\w\(] $+ %src1 $+ [\w])/i
IF $regex(SECOND,%word,%check1) { ECHO -a %word Skipped: $regml(SECOND,1) }
}
ELSE { ECHO -a %word is OK }
}
Par contre , tu parles de " filtrage " , je ne comprends pas trop éxactement ce que tu veux faire.
A première vue , si le premier regex est vérifié , alors ne rien faire.
Sinon vérifié encore une fois si ce mot se trouve dans plusieurs combinaisons possibles.
Et là tu refais un echo sur cette combinaison.
Je pense que tu peux faire tout cela avec un seul $regex
voyons voir:
Alias berk {
VAR %word == $1-
VAR %halton1 = /((\w[\-_\(]?)(sbd|web|dab|sat|radio|line|live|ssl|sampler|demo|cable|fm)(\w[\-_\)]?))/i
IF $regex(FIRST,%word,%halton1) { ECHO -a %word Skipped: $regml(FIRST,1) }
ELSE { ECHO -a %word is OK }
}
Maintenant, si tu veux vraiment 'filtrer' %word, il te suffit d'appliquer ce regex dans un $regsub ou $regsubex.
Pour l'instant tu ne fais qu'un affichage :)
TropNul
piwiii
Messages postés2Date d'inscriptionmercredi 29 novembre 2006StatutMembreDernière intervention30 novembre 2006 30 nov. 2006 à 16:03
eh bien oui le but est de filtrer dans %word des mots predifini dans
%halton1 ki sont ensuite en variable dans une autre ligne regex
en gros je veux par exemple k'il filtre le mot web ki ya dans %halton1
mé ossi k'il aille plus loin en filtrant *-web-* , *-web_* ,
*_web-* , *(web* , *web)* via l'otre regex tout ca
pour eviter un grd nombre de ligne ensuite si le resultat est 1 ou 0
renvoyer vers un goto si la condition est oui ou non.
Vous n’avez pas trouvé la réponse que vous recherchez ?
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 2 déc. 2006 à 21:21
c'est assez étange ton code ...
les regex sont un outil très utile, mais aussi très compliqué
ton code utilise des regex alors qu'il est très mal codé en lui même, c'est assez paradoxal ^^
if ( $regex(SECOND,%word,%check1) == 1 ) { goto stop1 }
else { goto pass1 }
:stop1
echo -a %word skiped: $regml(SECOND,1)
halt
:pass1
echo -a %word is OK
halt
devient :
if ($regex(%word,%check1)) echo -a %word skiped: $regml(1)
else echo -a %word is OK
halt
pour la suite, j'ai pas trop compris ... tu pourrais donner des exemples de ce que tu veux ? Donne en plusieurs, histoire qu'on comprenne bien la chose :)