Rechercher : dans
Par :

Expression régulière : Petit problème

Dernière réponse le 11 mar 2006 à 17:50:05 Alea, le 11 mar 2006 à 17:14:01 
 Signaler ce message aux modérateurs

Bonjour,
Alors voilà: Je suis en projet et je dois développer en php un automate pour le web.
J'ai appris très recemment qu'on pouvait utiliser les expressions régulières mais comme je n'y connait rien, même avec la doc php.net et des essais ben là ça marche pas la syntaxe que j'ai faite.
En fait je veux récupérer le "a name=#" d'un code html et j'arrive pas à mettre les bons paramètres pour que ça s'execute.

Voici mon code:

if (preg_match_all("/a.href=[.#]([a-z][A-Z][0-9][.])$/",$line,$r))
{
.....
}

(j'ai mis en gras ce qui me fait galérer...)

Merci d'avance pour votre aide!

Meilleures réponses pour « Expression régulière : Petit problème » dans :
[RegExp] Récupérer une adresse IP VoirFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la...
Google - Recherche d'une expression exacte VoirLorsque l’on souhaite faire la recherche d’une expression exacte, il suffit de mettre cette expression entre guillemets. Exemple : "animal domestique" référencera uniquement les sites comportant l’expression "animal domestique".
Sed - Trucs et astuces VoirSubstitution Affichage Suppression Espace et tabulation Ligne vide Intervalle régulier Divers Joindre des lignes Affichage insensible à la casse Substitution Substituer "foo" par "bar" à chaque ligne Seulement la 1ère...
Télécharger MOREFUNC (Macro complémentaire EXCEL) VoirMorefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres...
Télécharger Renamer4Mac VoirRenamer4Mac permet de renommer facilement un grand nombre de fichiers. Par un simple glisser/déposer des fichiers sur son icône ou dans sa fenêtre, on peut agir de différentes manières. par Rechercher/Remplacer (expression régulière et...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
Javascript - L'objet RegExp VoirLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des...

1

Alea, le 11 mar 2006 à 17:16:27

Euh petite précision: c'est le a href="#....." que je souhaite récupérer en fait. (en sachant qu'après le "#" il y a des caractères soit alphabétiques, soit numériques, soit les 2)

Répondre à Alea

2

lami20j, le 11 mar 2006 à 17:21:37
  • +1

En général c'est bien de savoir la structure de texte pour pouvoir exploiter une regex

/a href="#[^"]+"/

Tu peux tester ici tes regex
http://www.annuaire-info.com/expression-reguliere.html

Je travaille avec perl et ses regex donc je ne sais pas les regex en php.

Répondre à lami20j

3

Alea, le 11 mar 2006 à 17:24:01

Merci beaucoup! Je vais voir ça...
Mais ça fait partie de la difficulté du truc de ne pas savoir à l'avance le texte qu'il y aura dans cette partie.

Répondre à Alea

4

lami20j, le 11 mar 2006 à 17:27:22

ça fait partie de la difficulté du truc de ne pas savoir à l'avance le texte qu'il y aura dans cette partie.

En général on utilise les regex pour trouver des correspondances (des motifs dans une chaîne de caractères) ou dans un test boolean.

Si m// correspond Alors

fait quelque chose

Dans ton cas tu veux récuperer de texte donc il faut savoir la structure de texte pour pouvoir exploiter mieux les regex. Et, crois moi que je ne dit pas comme ça pour parler.

Répondre à lami20j

5

Alea, le 11 mar 2006 à 17:32:30

Ben le problème c'est que je suis censée faire un automate.Qui dit automate dit automatique.
Cet automate peut analyser n'importe quel code html et le truc, c'est que ce qui est contenu dans "a href=#....", bah ça peut varier. C'est selon ce que le créateur du site aura marqué dedans.
Ya pas possibilité de dire en expression régulière de récupérer ce qu'il y a entre guillemets lorsque c'est après "a href"?

Répondre à Alea

7

lami20j, le 11 mar 2006 à 17:36:08

Re,

Ya pas possibilité de dire en expression régulière de récupérer ce qu'il y a entre guillemets lorsque c'est après "a href"?

Oui c'est ça que je t'ai donné. Maintenant je ne sais pas comment on fait les captures en php. En perl on utilise les ( )

a href="#[^"]+"

Ex pour perl

a href=("#[^"]+") la ( ) est capturé dans la variable $1
je vais traduire

trouve a suis d'un espace suis de h de r de e de f de = de " de # de tout caractère qui n'est pas " une fois minimum et " à la fin

Répondre à lami20j

6

Alea, le 11 mar 2006 à 17:34:02

Ou sinon de dire de récuperer lorsqu'il y a --> a href="#

Répondre à Alea

8

Alea, le 11 mar 2006 à 17:44:49

Arf ça marche pas, ya un problème au niveau des guillemets et des délimiteurs.
Pour les captures, en php si j'ai bien compris c'est avec la fonction preg match all, on met en paramètre un tableau et après, la fonction le remplit pour chaque élément trouvé (enfin je crois).
Mais là en fait j'ai testé et il ne reconnaît pas quand il y a plus de deux ", après il met en commentaires... j'ai testé avec ' mais je ne suis pas sûre que ça le prenne en compte car ça ne marche pas...
Enfin merci de toute aide en tout cas ^^

Répondre à Alea

9

Alea, le 11 mar 2006 à 17:47:08

Ahhh mais si en fait ça marche! J'avais oublié de mettre les / au début et à la fin! Miracle, merci beaucoup!!!

Répondre à Alea

10

 lami20j, le 11 mar 2006 à 17:50:05
  • +1

Re,

je t'ai donné que la regex
a href="#[^"]+"
je suis désolé que j'ai oublié de te dire qu'il faut la mettre entre //

Donc /regex/

Si ça marche tant mieux, je suis content pour toi.
Avec les regex on peut faire des choses surprenantes.

Bonne continuation,

lami20j

Répondre à lami20j
Collection CommentÇaMarche.net