no save
Assistance
Achat
News

Forum | programmation
php expressions regulieres
lami20j, le mar. 28 févr. 2006 à 19:46:29
Salut kilian,

l'idée n'est pas mauvaise. En fonction des besoins je l'utilise souvent. Paradoxal elle m'a echappé en pensant aux regex et pas à la comparaison.

Voilà je me suis amusé un peu
#! /usr/bin/perl

use warnings;
use strict;

my $ch ='dsfds 45 dsfds 254 dsfsd 1-25 5,25,78,54,987 45454545 75487 et a la fin 05.';

print "avec grep\n\n";
print grep { ($_ =~ /\d+/)?( $_ >= 1 && $_ <= 60 ):1 }
split(/[^0-9]/,$ch),"\n";

print "avec map\n\n";
print map { if ($_=~/\d+/ && ( $_ >=1 && $_ <= 60)) { $_ .= " "} }
split(/[^0-9]/,$ch),"\n";

print "\net regex\n\n";
while ($ch =~/(?<=\D) # test arriere non chiffre
( 0? # les cas 01...09 optionnel
[1-9] # les cas 1..9
| # ou
[1-5][0-9] # les cas 10...59
)
(?=\D|$) # test avant non chiffre ou fin de chaine
/gx) { # recherche progressive en contexte scalaire
print "$1 dans la positon ",pos($ch) - 1,"\n";
}

[lamitest@localhost corbeille]$ perl 000.pl
avec grep

451255255405
avec map

45 1 25 5 25 54 05
et regex

45 dans la positon 8
1 dans la positon 26
25 dans la positon 29
5 dans la positon 31
25 dans la positon 34
54 dans la positon 40
05 dans la positon 74

Précédentkilian
févr. 06
kilian
févr. 06
Suivant
REPONSES
teebo
févr. 06
geff
févr. 06
lami20j
févr. 06
kilian
févr. 06
lami20j
févr. 06
kilian
févr. 06
Version Web
Réalisé par RedShift
no save