8797 sujets

Développement web côté serveur, CMS

Bonjour,
j'ai déjà utilisé l'excellent petit logiciel Xscrape qui permet d'extraire des données de manière récursive.
mais je sèche pour trouver la bonne expression régulière pour trouver mon bout de texte.
je souhaiterais extraire les descriptifs produits d'un site:
voilà le bout de code:
<b>Descriptif : </b>
<br>
<font style='line-height: 17px'>mondescriptif</b><br>

est ce qqun pourrait me proposer une expression?
merci
au-delà du fait que la balise font est dépréciée, elle n'est pas fermée dans ton exemple.
Donc déjà, il faudrait que tu nous donnes un morceau de code correct et complet.

mais pour ton exemple de code, ça donnerait ça, en supposant que ton descriptif ne contienne pas le signe <

font([^>]+)>([^<]+)

$2 te renvoie mondescriptif
Modifié par xirt (21 Mar 2012 - 23:58)
oui j'ai fait une petite erreir, elle est bien fermée avant </b>

merci pour ta proposition.

par contre que veux tu dire par $2 envoi mondescriptif?

mon descriptif est uniquement du texte, pas de caractère spéciaux.

j'ai un peu regardé les tutos sur les regex mais je n'ai pas réussi à en faire une qui fonctionne pour le moment.

xirt, j'ai essayé ton expression dans xscrap,pour le moment il me sort tout le texte qu'il trouve. y a t il moyen d'affiner un peu?
merci
on parle bien de celle ci: "font([^>]+)>([^<]+)"

j'ai ca comme résultat: var regex = /font([^>]+)>([^<]+)/g; var input = "your input string"; if(regex.test(input)) { var matches = input.match(regex); for(var match in matches) { alert(matches Smiley match ); } } else { alert("No matches found!"); }

mais je ne comprends pas ce que ca veut dire.
merci je comprends mieux.
par contre le soucis du coup avec cette expression c'est que ca ressort tous les termes qui sont après une balise font ce qui est embétant car il y en a plein dont je n'ai pas besoin.
y a til un moyen de récupérer uniquement le texte qui est après la chaine "Descriptif:"

j'ai essayé ca: Descriptif([^>]+)>([^<]+)
mais ca marche pas. Smiley decu

merci de votre aide en tout cas.
Modifié par cockpitinferno (22 Mar 2012 - 15:42)
preg_match('#font([^>]+)>([^<]+)#', '{{your data}}');


ça va te retourner un array
Array
(
    [0] => font style='line-height: 17px'>mondescriptif
    [1] =>  style='line-height: 17px'
    [2] => mondescriptif
)


Tu mets le résultat de preg_match dans une variable ($resultat par exemple) et tu n'as qu'à récupérer la ligne que tu veux comme ceci : $resultat[2]
Modifié par xirt (23 Mar 2012 - 16:06)
ben le problème c'est que j'ai pas besoin d'une variable il me faut juste l'expression car j'utilise Xscrape.
donc du coup je ne sais pas comment adapter la phrase pour qu'elle me sorte juste le texte qui est après "descriptif"

edit:
j'ai un peu mieux compris, en fait tu lui dit de te ressortir uniquement la ligne 2 de ses résultats en utilisant une variable.
ok

mais du coup comme retranscrire cela pour l'intégrer à l'expression régulière?
Modifié par cockpitinferno (23 Mar 2012 - 16:21)
un petit up, j'ai juste besoin de savoir comment intérgrer dans la regex le fait que je ne veux que le résultat n°2 (mais directement dans le "motif" si c'est possible)
merci
Je viens d'essayer avec ca :
#>([^<]+)#

il me sort ca:
Array
(
    [0] => Array
        (
            [0] => >Descriptif : 
            [1] => >

            [2] => >

            [3] => >mondescriptif.
            [4] => >

        )

    [1] => Array
        (
            [0] => Descriptif : 
            [1] => 

            [2] => 

            [3] => mondescriptif.
            [4] => 

        )

)


ca correspond déjà un peu plus à ce que je cherche.

mais comme j'ai bien lu les tutoriaux je voudrais que les chaines commencant par "descriptif"
car ce bout de texte se trouve en plein milieu d'une page html.
je suis censée ajouter ^Descriptif ou un truc du genre et quand je fais ca: ^des>([^<]+)
par exemple, il ne me donne pas de résultat.
j'avance un peu mais je veux bien encore un coup de pouce svp.
merci
Modifié par cockpitinferno (23 Mar 2012 - 18:49)
Je pense que le problème c'est surtout Xscraper qui gère pas les parenthèses de capture. Il est pas fait pour les expressions rationnelles PERL.
Modifié par jb_gfx (23 Mar 2012 - 21:45)
merci de votre aide, scrapbox est un peu cher pour moi.

par contre est ce que je pourrais extraire du texte avec un logiciel submitter?