expression reguliere d'un url
16 messages • Page 1 sur 2 • 1, 2
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
expression reguliere d'un url
bonjour tout le monde,
je suis actuellement entraine de programmé en perl, c'est la première fois et j'ai un problème pour l'expression régulière d'un url que je dois aller et récupérer des ids. voici l'url : href="resumeSearchResults.cfm?pageAction=viewResumeSearchResult&resumeId=757663" , le numero de la fin (id) varie et voici ce que j'ai fait qui fonctionne pas.
while($Fichier=readdir(DIR)) {
if(($Fichier ne ".") && ($Fichier ne "..")){
if($fichier=~ "#^(((?:http[s]?)://)?(?(2)(www\.)?|(www\.){1})([-a-z0-9_]{2,}\.[-a-z0-9.]{2,}[-a-z0-9\/&\?=.]{2,})$#i\)"){
$Fichier= "/var/www/html/firstpage/".$Fichier;
open(LOG, "$Fichier") or die(" pb avec $Fichier : $!\n");
while(my $ligne = <LOG>) {
chomp($ligne);
if($ligne= ^href="\resumeSearchResults\.cfm\?pageAction&.*resumeId=(\d+)/$#i"){
print ECRIRE $1."#";
$l++;
}
}
}
}
}
merci de bien vouloir m'aider.
je suis actuellement entraine de programmé en perl, c'est la première fois et j'ai un problème pour l'expression régulière d'un url que je dois aller et récupérer des ids. voici l'url : href="resumeSearchResults.cfm?pageAction=viewResumeSearchResult&resumeId=757663" , le numero de la fin (id) varie et voici ce que j'ai fait qui fonctionne pas.
while($Fichier=readdir(DIR)) {
if(($Fichier ne ".") && ($Fichier ne "..")){
if($fichier=~ "#^(((?:http[s]?)://)?(?(2)(www\.)?|(www\.){1})([-a-z0-9_]{2,}\.[-a-z0-9.]{2,}[-a-z0-9\/&\?=.]{2,})$#i\)"){
$Fichier= "/var/www/html/firstpage/".$Fichier;
open(LOG, "$Fichier") or die(" pb avec $Fichier : $!\n");
while(my $ligne = <LOG>) {
chomp($ligne);
if($ligne= ^href="\resumeSearchResults\.cfm\?pageAction&.*resumeId=(\d+)/$#i"){
print ECRIRE $1."#";
$l++;
}
}
}
}
}
merci de bien vouloir m'aider.
Re: expression reguliere d'un url
comme0 a écrit:while($Fichier=readdir(DIR)) {
if(($Fichier ne ".") && ($Fichier ne "..")){
Tu ferais mieux de faire un next if $Fichier =~ /^./; ça simplifie la lecture...
comme0 a écrit:if($fichier=~ "#^(((?:http[s]?)://)?(?(2)(www\.)?|(www\.){1})([-a-z0-9_]{2,}\.[-a-z0-9.]{2,}[-a-z0-9\/&\?=.]{2,})$#i\)"){
Là tu compares le nom du fichier (et non son contenu) avec ta regex de la mort qui tue. En plus je ne suis pas vraiment convaincu qu'elle soit très juste, et au minimum il y a beaucoup de choses superflues dedans. Mais que cherches-tu réellement à faire avec?
comme0 a écrit:
$Fichier= "/var/www/html/firstpage/".$Fichier;
open(LOG, "$Fichier") or die(" pb avec $Fichier : $!\n");
while(my $ligne = <LOG>) {
chomp($ligne);
if($ligne= ^href="\resumeSearchResults\.cfm\?pageAction&.*resumeId=(\d+)/$#i"){
- ça doit même pas compiler, ça, si? $ligne =~ /ta-regex/ ça devrait déjà mieux marcher...
- le href=... se situe vraiment en tout début de ligne?
- à quoi sert le \ dans href="\?
- la fin de ta "regex" me laisse perplexe... je pense que tu voulais dire "$/i mais je n'en suis pas convaincu. Et ça impliquerait qu'on passe à la ligne juste après cet attribut...
comme0 a écrit:merci de bien vouloir m'aider.
perldoc perlre
Jacques.
en fait c'est la premiere fois que je fais j'ai beaucoup lu et voila ce que j'ai pu ecrire,
ce que je veux n'est rien de particulier qu'aller dans ce url: href="resumeSearchResults.cfm?pageAction=viewResumeSearchResult&resumeId=757663 et recuperer le nonbre 757663 qui varier pour le mettre dans fichier où je peux l'exploiter après.
alors vous pouvez me suggerer une solution.
merci
ce que je veux n'est rien de particulier qu'aller dans ce url: href="resumeSearchResults.cfm?pageAction=viewResumeSearchResult&resumeId=757663 et recuperer le nonbre 757663 qui varier pour le mettre dans fichier où je peux l'exploiter après.
alors vous pouvez me suggerer une solution.
merci
comme0 a écrit:en fait c'est la premiere fois que je fais j'ai beaucoup lu et voila ce que j'ai pu ecrire,
ce que je veux n'est rien de particulier qu'aller dans ce url: href="resumeSearchResults.cfm?pageAction=viewResumeSearchResult&resumeId=757663 et recuperer le nonbre 757663 qui varier pour le mettre dans fichier où je peux l'exploiter après.
alors vous pouvez me suggerer une solution.
merci
- Code: Tout sélectionner
open my $fh,"$filename" or die "can't open $filename";
while (<$fh>)
{
if (/href="resumeSearchResults\.cfm\?pageAction=viewResumeSearchResult&resumeId=(\d+)"/)
{
print "$1\n";
}
}
Non?
Jacques.
j'ai fait ça maintenant
if($Fichier=~ m/html/i){
open(LOG, "$Fichier") or die(" pb avec $Fichier : $!\n");
while(my $ligne = <LOG>) {
chomp($ligne);
if($ligne=~ m/href="resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)\"/i){
print ECRIRE $1."#";
$l++;
}
}
}
mais toujour rien
if($Fichier=~ m/html/i){
open(LOG, "$Fichier") or die(" pb avec $Fichier : $!\n");
while(my $ligne = <LOG>) {
chomp($ligne);
if($ligne=~ m/href="resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)\"/i){
print ECRIRE $1."#";
$l++;
}
}
}
mais toujour rien
comme0 a écrit:j'ai fait ça maintenant
if($Fichier=~ m/html/i){
open(LOG, "$Fichier") or die(" pb avec $Fichier : $!\n");
while(my $ligne = <LOG>) {
chomp($ligne);
if($ligne=~ m/href="resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)"/i){
print ECRIRE $1."#";
$l++;
}
}
}
mais toujour rien
1. "rien", ce n'est pas très précis... Il y a des erreurs, des warnings? Ajoute "use strict; use warnings" au début de ton programme, ça permettra d'en savoir plus.
2. Je suppose que le fh "ECRIRE" existe, et que tu as ouvert le fichier correspondant en écriture, que tu as vérifié qu'il l'ouvrait bien, et que tu as vérifié ce qu'il contenait à la fin?
Jacques.
voici au complet mon script:
#!/usr/local/bin/perl
use Switch;
open(ECRIRE,">//var/www/html/comme/les_ids/mesIds")or die ("Erreur de creation de ids") ;
$dir = "/var/www/html/firstpage/";
$k=0;
$l=0;
opendir(DIR, $dir) || print "Repertoire $dir introuvable:$!\n";
while($Fichier=readdir(DIR)) {
if(($Fichier ne ".") && ($Fichier ne "..")){
if($Fichier=~ m/html/i){
$Fichier= "/var/www/html/firstpage/".$Fichier;
open(LOG, "$Fichier") or die(" pb avec $Fichier : $!\n");
while(my $ligne = <LOG>) {
chomp($ligne);
if($ligne=~ m/href="resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)\"/i){
print ECRIRE $1."#";
$l++;
}
}
}
}
}
closedir(DIR);
close(ECRIRE);
$chaine="";
$chaineold="";
$oldvar="";
open(ECRIRE2,">/var/www/html/comme/les_ids/mesIdsFinal")or die ("Erreur de creation de creation \n") ;
open(LOG2, "/var/www/html/comme/les_ids/mesIds") or die(" pb avec : $!\n");
open(LOG3, "/var/www/html/comme/les_ids/mesIdsFinalOLD") or die(" pb avec : $!\n");
while(my $ligne = <LOG2>) {
chomp($ligne);
$chaine=$chaine."#".$ligne;
}
while(my $ligne = <LOG3>) {
chomp($ligne);
$chaine3=$chaine3."#".$ligne;
}
@Myliste = split(/#/, $chaine);
@Myliste = sort @Myliste;
foreach $var (@Myliste){
if($var ne $oldvar && !($chaine3 =~ m/#$var#/i)){ $oldvar=$var;print ECRIRE2 $var."#";$k++;}
}
close(LOG2);
close(ECRIRE2);
print $l.":".$k;
merci pour tes efforts
#!/usr/local/bin/perl
use Switch;
open(ECRIRE,">//var/www/html/comme/les_ids/mesIds")or die ("Erreur de creation de ids") ;
$dir = "/var/www/html/firstpage/";
$k=0;
$l=0;
opendir(DIR, $dir) || print "Repertoire $dir introuvable:$!\n";
while($Fichier=readdir(DIR)) {
if(($Fichier ne ".") && ($Fichier ne "..")){
if($Fichier=~ m/html/i){
$Fichier= "/var/www/html/firstpage/".$Fichier;
open(LOG, "$Fichier") or die(" pb avec $Fichier : $!\n");
while(my $ligne = <LOG>) {
chomp($ligne);
if($ligne=~ m/href="resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)\"/i){
print ECRIRE $1."#";
$l++;
}
}
}
}
}
closedir(DIR);
close(ECRIRE);
$chaine="";
$chaineold="";
$oldvar="";
open(ECRIRE2,">/var/www/html/comme/les_ids/mesIdsFinal")or die ("Erreur de creation de creation \n") ;
open(LOG2, "/var/www/html/comme/les_ids/mesIds") or die(" pb avec : $!\n");
open(LOG3, "/var/www/html/comme/les_ids/mesIdsFinalOLD") or die(" pb avec : $!\n");
while(my $ligne = <LOG2>) {
chomp($ligne);
$chaine=$chaine."#".$ligne;
}
while(my $ligne = <LOG3>) {
chomp($ligne);
$chaine3=$chaine3."#".$ligne;
}
@Myliste = split(/#/, $chaine);
@Myliste = sort @Myliste;
foreach $var (@Myliste){
if($var ne $oldvar && !($chaine3 =~ m/#$var#/i)){ $oldvar=$var;print ECRIRE2 $var."#";$k++;}
}
close(LOG2);
close(ECRIRE2);
print $l.":".$k;
merci pour tes efforts
Eh, il n'y a pas marqué "on écrit tes scripts à ta place" ici, hein...
Si ton script il ne marche pas, ben tu débuggues. Tu commences par mettre les "use strict; use warnings;" dont je t'ai parlé, et tu ajoutes des traces pour voir ce qu'il fait, et tu vas finir par trouver ce qui ne marche pas.
Ceci dit, un petit indice, "print" ne rajoute pas de retour à la ligne spontanément, et pense à regarder ce qu'il y a dans tes fichiers intermédiaires pour voir...
Jacques.
Si ton script il ne marche pas, ben tu débuggues. Tu commences par mettre les "use strict; use warnings;" dont je t'ai parlé, et tu ajoutes des traces pour voir ce qu'il fait, et tu vas finir par trouver ce qui ne marche pas.
Ceci dit, un petit indice, "print" ne rajoute pas de retour à la ligne spontanément, et pense à regarder ce qu'il y a dans tes fichiers intermédiaires pour voir...
Jacques.
comme0 a écrit:dsl pour le derangement mais j'ai un probleme avec le Strict et warnings; en je reçoi un message d'erreur qui me dit:
Can't locate Strict.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi
encore merci.
Pas de majuscule à "strict".
Jacques.
il ne m'indique pas où il y a les erreurs mais il m'affiche message de ce genre:
Global symbol "$ dir" exige explicitement le nom du paquet à indexcandidats.pl ligne 7. et c'est pour toutes les variables que j'ai utilisé.
et à la fin il me dit la compilation a été avorté en raison des erreurs de compilation.
puis-je avoir plus detaille si c'est possible.
merci
Global symbol "$ dir" exige explicitement le nom du paquet à indexcandidats.pl ligne 7. et c'est pour toutes les variables que j'ai utilisé.
et à la fin il me dit la compilation a été avorté en raison des erreurs de compilation.
puis-je avoir plus detaille si c'est possible.
merci
comme0 a écrit:il ne m'indique pas où il y a les erreurs mais il m'affiche message de ce genre:
Global symbol "$ dir" exige explicitement le nom du paquet à indexcandidats.pl ligne 7. et c'est pour toutes les variables que j'ai utilisé.
et à la fin il me dit la compilation a été avorté en raison des erreurs de compilation.
puis-je avoir plus detaille si c'est possible.
merci
Il faut que tu déclares tes variables avant de les utiliser: my $dir; par exemple...
Jacques.
apres bcp des modif je pense que mon script devrais marcher, mais j'ai un souci c'est que l'url que j'ai ecrit je pense que c'est pas bon. voila l'url que je veux utiliser
href="resumeSearchResults.cfm?pageAction=viewResumeSearchResult&resumeId=757663"
voici ce que j'ai ecrit:
if($ligne=~ m/"href=resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)\"/i)
j'aimerai bien si c'est possible une proposition,
merci.
href="resumeSearchResults.cfm?pageAction=viewResumeSearchResult&resumeId=757663"
voici ce que j'ai ecrit:
if($ligne=~ m/"href=resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)\"/i)
j'aimerai bien si c'est possible une proposition,
merci.
comme0 a écrit:apres bcp des modif je pense que mon script devrais marcher, mais j'ai un souci c'est que l'url que j'ai ecrit je pense que c'est pas bon. voila l'url que je veux utiliser
href="resumeSearchResults.cfm?pageAction=viewResumeSearchResult&resumeId=757663"
voici ce que j'ai ecrit:
if($ligne=~ m/"href=resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)"/i)
j'aimerai bien si c'est possible une proposition,
merci.
ben si tu ne mets pas le " au même endroit que tu le cherches, forcément, ça ne peut pas marcher. Sinon pas besoin d'escaper le deuxième ". Bref:
- Code: Tout sélectionner
if($ligne =~ m/href="resumeSearchResults.cfm\?pageAction&.*resumeId=(\d+)"/i)
Jacques.
16 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Sandbox, blacklistage et autres pénalités de Google
- Nouvelle étude de WebRankInfo : les mots-clés et le référencement
- La calculatrice Google
- Impact du PageRank dans le positionnement Google
- Google Suggest API
- Google News : trucs et astuces
- Les bonnes stratégies de mots-clés pour le référencement
- Google Trends
- Exalead améliore son interface
- Lancement d'un dictionnaire collaboratif en ligne
- re expression régulière...
- Expression régulière
- expression réguliere!please help!!!
- Expression régulière simple
- soucis expression reguliere
- expression régulière en javascript
- problème expression régulière
- RedirectMatch et expression régulière
- Expression Régulière Malformée ?
- Expression régulière et redirect
- mauvaise expression reguliere?
- expression réguliére particuliére...
- RewriteRule Expression reguliere et boucle
- Help sur une expression régulière
- Ecriture d'une expression régulière
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


le forum