Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [Regular Expression] rintracciare porzione di codice in pagina HTML

    E' la prima volta che sono alle prese con le Regular Expression e mi trovo in grande difficoltà.
    vi spiego brevemente il problema:

    All'interno di una pagina HTML, ho una serie di link così composti
    codice:
    productdetails?productId=UNI1036600-2007!EIT
    Le seguenti parti del link sono fisse
    - productdetails?productId=
    - !EIT

    quello che cambia è
    - UNI1036600-2007
    che rappresenta l' Id del prodotto.

    quello che devo fare è rintracciare tutti i link così formati. come faccio? non ci sto capendo più niente.

  2. #2
    Quali regular expression usi? (Perl, .NET, ...)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Originariamente inviato da MItaly
    Quali regular expression usi? (Perl, .NET, ...)
    .NET

  4. #4
    Usa come regular expression
    codice:
    href\s*=\s*"{0,1}productdetails\?productId=(.*)!EIT"{0,1}
    (se il productId ha una struttura regolare tra l'altro si può scrivere qualcosa di meglio).
    Usa ovviamente l'opzione CaseInsensitive; per ogni match nel gruppo di cattura 1 troverai il productId.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Originariamente inviato da MItaly
    Usa come regular expression
    codice:
    href\s*=\s*"{0,1}productdetails\?productId=(.*)!EIT"{0,1}
    (se il productId ha una struttura regolare tra l'altro si può scrivere qualcosa di meglio).
    Usa ovviamente l'opzione CaseInsensitive; per ogni match nel gruppo di cattura 1 troverai il productId.
    ti ringrazio infinitamente e sembra che funzioni quasi del tutto. ci sono delle cosette che non vanno xke non mi dà solo quello che volgio io ma anche altre cose.
    Esempio:
    dopo !EIT ci sono altri caratteri che non mi interessa prendere ma al momento li prende e mi fa un gran casino.

  6. #6
    Ma tu devi rintracciare il link per intero o solo il codice del prodotto?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Originariamente inviato da MItaly
    Ma tu devi rintracciare il link per intero o solo il codice del prodotto?
    mi basta rintracciare solo questo : productId=UNI1036600-2007!EIT

  8. #8
    Allora usa come regular expression
    codice:
    href\s*=\s*"{0,1}productdetails\?(productId=.*!EIT)"{0,1}
    per ogni match nel gruppo di cattura 1 troverai il testo che ti serve.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    volendo invece ricavare solo l'id ?

  10. #10
    forse ho capito xke ho dei problemi con l'espressione che mi hai passato.
    Subito dopo l' href che mi serve, c'è un js con dentro un altro link con dentro l' ID precedente.

    a questo punto devo far in modo di ricavare solo ed esclusivamente l' Id che mi serve dal primo href.

    Se scrivo la seguente espressione:
    codice:
    productId=.*!EIT
    ottengo il seguente output:

    codice:
    UNI1022400-2007!EIT">UNI 10224:2007 versione elettronica; lingua italiano</a>EUR51.5<span class
    quindi dal carattere " in poi, non devo prendere nulla.

    EDIT:
    ho risolto con questa espressione:
    codice:
    ""productdetails\?productId=.*!EIT""
    ringrazio di cuore MItaly che mi ha fornito la giusta imbeccata per la soluzione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.