Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/12/2007, à 19:44

scholi

regexp perl [Résolu]

Salut à  tous. Je fais d'habitude des scriptes en python, mais là  je suis obligé d'utiliser perl (en faite microperl),  car j'ai installé un linux sur mon router wifi (qui n'a pas bcp de mémoire). Enfin bref, je connais très bien python et très bien les expressions rationnels (regexp). Le problème est que je connais très mal perl et je cherche l'équivalent en perl de la fonction re.findall(pattern) qui me retourne un array de résultat. Or avec perl je sais seulement faire un truc du style:

$txt =~ /pattern/;
print "Première occurence: $1, 2ème: $2, ...";

Merci de votre aide, car celle online est pas terrible pour perl (comparé à  python)

Dernière modification par scholi (Le 13/12/2007, à 23:55)


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#2 Le 13/12/2007, à 22:56

kaworu

Re : regexp perl [Résolu]

Salut !
voici un exemple (vraiment sympa, parce que un script perl plus "classique" serais 10x moins long et 10x moins lisible) :

#!/usr/bin/env perl


$_ = 'foo bar oni';
@results = m/\w+/g;

print "${results[0]} and ${results[1]} and ${results[2]}\n";

#ou mieux encore
foreach $element (@results) {
    print $element;
}

EDIT :
voici un lien avec vraiment toute la doc que tu as besoin (en français) :
http://perl.enstimac.fr/DocFr.html

Perl est incontournable dans le monde des regex, si je peux te conseiller un livre qui vaut vraiment son poid de pièces il y a mastering regular expressions de chez Oreilly qui est vraiment bien. On peut dire "je connais bien les regex" seulement après avoir lu ce bouquin smile

Dernière modification par kaworu (Le 13/12/2007, à 23:02)


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#3 Le 13/12/2007, à 23:55

scholi

Re : regexp perl [Résolu]

c'est exactement ce que je cherchais! Merci bcp.


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#4 Le 14/12/2007, à 08:51

aleph

Re : regexp perl [Résolu]

Ah les expressions régulières !
Pour ceux qui veulent se faire la main : http://spinecho.ze.cx/ > regulex

#5 Le 14/12/2007, à 13:54

kaworu

Re : regexp perl [Résolu]

Salut !

Il existe komodo (également en python) qui doit être dans les dépôts et qui ressemble beaucoup à regulex.
Autrement moins "graphique" mais plus avancé, il y a le mode debug de perl pour les regex qui est impressionant :

perl -ne 'use re "debugcolor"; /<ma_regex>/'

"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#6 Le 14/12/2007, à 14:33

scholi

Re : regexp perl [Résolu]

aleph a écrit :

Ah les expressions régulières !
Pour ceux qui veulent se faire la main : http://spinecho.ze.cx/ > regulex

Si tu fais de la pub apprend qu'on ne dit pas expression régulière, mais expression RATIONNEL en français.


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#7 Le 14/12/2007, à 17:44

aleph

Re : regexp perl [Résolu]

> scholi

Expression rationnelle ou expression régulière. Appelons cela un anglicisme, en effet il semble que les deux variantes sont utilisées:
http://fr.wikipedia.org/wiki/Expressions_r%C3%A9guli%C3%A8res#_note-0
http://www.oreilly.fr/catalogue/2841772365.html

Quant à  regulex, mon intention n'était pas de faire de la pub. Beaucoup ont de la peine dans ce domaine et les applications de ce type (en logiciel libre) sont plutà´t rares. Mon intention n'était que de rendre service.

Pour la petite histoire, l'application regulex n'a pas été développée dans le but d'être une application d'apprentissage, mais pour tester un des composants wxPython. Elle disponible ou référencée via son wiki, je crois. La version présentée est dans un habillage Windows, mais elle fonctionne sur tout ce qui supporte Python et wxPython.

> kaworu

Oui, je connais komodo de nom, mais je ne l'ai jamais utilisé.

#8 Le 14/12/2007, à 18:19

scholi

Re : regexp perl [Résolu]

expression régulière est une erreur fait par les français (qui sont pas très doué en anglais big_smile ). Mais regular ne veut pas du tout dire régulier. C'est ce qu'on appel un faux ami et expression régulière est totalement faux! Si on le rencontre souvent, c'est parce qu'il y a bcp de gens qui font faux et non que les deux sont juste!


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#9 Le 14/12/2007, à 18:38

iuchiban

Re : regexp perl [Résolu]

scholi a écrit :

expression régulière est une erreur faite par les français (qui sont pas très doués en anglais big_smile ). Mais regular ne veut pas du tout dire régulier. C'est ce qu'on appel un faux ami et expression régulière est totalement faux! Si on le rencontre souvent, c'est parce qu'il y a bcp de gens qui font faux et non que les deux sont justes!

tongue


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne