Pagina 4 di 4 primaprima ... 2 3 4
Visualizzazione dei risultati da 31 a 40 su 40
  1. #31
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    E come posso indovinarlo. Parliamo di div dici che vuoi contare un testo quindi immagino che si tratti dei div.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  2. #32
    ad esempio, se io voglio sapere quante volte si ripete la parola agosto in questo codice

    codice HTML:
    <div class="mesi">giugnio</div>
    <div class="mesi">luglio</div>
    <div class="mesi">Agosto</div>
    <div class="mesi">Agosto</div>
    <div class="giorni">mercoledi</div>
    <div class="giorni">giovedi</div>
    <div class="giorni">Venerdi</div>
    che cosa dovrei modificare al mio codice regex? fino adesso abbiamo visto come selezionare i div globalmente, poi come selezionare quelli con un tipo di classe, adesso manca sapere come contare i div che hanno in comune un testo

  3. #33
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Con quello che ho postato hai tutti gli elementi per farlo. Basta avere un po’ di immaginazione.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #34
    badaze vorrei avere un ultimo chiarimento riguardo al espressione regolare

    $patternInc = "/(<div.*class=('|\")mesi('|\")[^>]*>(.+?)<\/div>)/msi";

    vedi io avevo capito fino qui (<div.*class=('|\")mesi('|\")

    quello che ancora non capisco e questa espressione [^>]*>(.+?)
    dicevi che il simbolo tra parentesi quadre ^ sta a dire prendi tutto tranne il carattere >
    ma non avrebbe senso, perche dopo "mesi" ci dovrebbe stare un > , cosi da fare il tag <div ="mesi">

    e poi continuando, ci metti ancora il carattere * che sta a indicare che ci devono essere altri caratteri prima di >

    e poi ancora tra parentesi tonde ci metti il punto, il + e il ? ... scusa ancora per le mie domande, ma vorrei avere tutto chiaro.



  5. #35
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Dopo "mesi" potresti avere altri elementi come id="pippo" o altro. Quindi non prendere i caratteri che non sono > ha senso. Puoi fare a meno di mettere [^>] nel tuo caso. Ma sappia che non funzionerà se aggiungi altri elementi.
    * dice che ci sono da 0 fino a n caratteri. Quindi per « parsare » sia "mesi"> che "mesi" id="pippo">.

    .+? dice che c’è almeno un carattere ma prendere la stringa con meno caratteri.
    Fai una prova con il mio esempio. Prima con ? e ti salvi il sorgente della pagina (non quello che vedi sul browser) poi senza e guarda le differenze.
    A partire da un certo momento è difficile spiegare se non si ha una certa infarinatura.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #36
    ho fatto la prova e ho scaricato il codice sul pc e dopo aver controllato con un editor di testo normale non ho notato nessuna differenza, e anche ispezionando il dom dal mio browser firefox non noto differenza, e a questo punto mi chiedo, a quale cambio ti riferisci??

    tornando a noi adesso credo di aver capito tutto il codice regex, ho fatto una modifica e mi funziona anche cosi
    $pattern = "/(<div.class=('|\")mesi('|\")>agosto<\/div>)/msi";

    mi chiedevo anche perche non avresti potuto fare cosi (^>) al posto di [^>] . che differenza c'e tra le parentesi quadre e tonde?

    quello che non mi e ancora del tutto chiaro e .+? dice che c’è almeno un carattere ma prendere la stringa con meno caratteri. prende solo stringhe con pochi caratteri, oppure e solo un modo di dire, perche se ci fosse una stringa lunga, ci sarebbero problemi?
    Ultima modifica di riccardo94; 28-08-2018 a 11:09

  7. #37
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Eppure differenze ce no sono.

    Senza ? => div.+
    $patternInc = "/(<div.+class\s*=\s*('|\")mesi\\2[^>]*>(.+?)<\/div>)/msi";
    codice:
    array(4) {
      [0]=>
      array(1) {
        [0]=>
        string(121) "<div class="mesi">giugnio</div><div class="mesi">luglio</div><div class="mesi">Agosto</div><div class="mesi">Agosto</div>"
      }
      [1]=>
      array(1) {
        [0]=>
        string(121) "<div class="mesi">giugnio</div><div class="mesi">luglio</div><div class="mesi">Agosto</div><div class="mesi">Agosto</div>"
      }
      [2]=>
      array(1) {
        [0]=>
        string(1) """
      }
      [3]=>
      array(1) {
        [0]=>
        string(6) "Agosto"
      }
    }
    Con ? => div.+?
    $patternInc = "/(<div.+?class\s*=\s*('|\")mesi\\2.*?>(.+?)<\/div>)/msi";
    codice:
    array(4) {
      [0]=>
      array(4) {
        [0]=>
        string(31) "<div class="mesi">giugnio</div>"
        [1]=>
        string(30) "<div class="mesi">luglio</div>"
        [2]=>
        string(30) "<div class="mesi">Agosto</div>"
        [3]=>
        string(30) "<div class="mesi">Agosto</div>"
      }
      [1]=>
      array(4) {
        [0]=>
        string(31) "<div class="mesi">giugnio</div>"
        [1]=>
        string(30) "<div class="mesi">luglio</div>"
        [2]=>
        string(30) "<div class="mesi">Agosto</div>"
        [3]=>
        string(30) "<div class="mesi">Agosto</div>"
      }
      [2]=>
      array(4) {
        [0]=>
        string(1) """
        [1]=>
        string(1) """
        [2]=>
        string(1) """
        [3]=>
        string(1) """
      }
      [3]=>
      array(4) {
        [0]=>
        string(7) "giugnio"
        [1]=>
        string(6) "luglio"
        [2]=>
        string(6) "Agosto"
        [3]=>
        string(6) "Agosto"
      }
    }
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #38
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Quote Originariamente inviata da riccardo94 Visualizza il messaggio
    ho fatto la prova e ho scaricato il codice sul pc e dopo aver controllato con un editor di testo normale non ho notato nessuna differenza, e anche ispezionando il dom dal mio browser firefox non noto differenza, e a questo punto mi chiedo, a quale cambio ti riferisci??
    Vedere post di prima.

    Quote Originariamente inviata da riccardo94 Visualizza il messaggio
    tornando a noi adesso credo di aver capito tutto il codice regex, ho fatto una modifica e mi funziona anche cosi
    $pattern = "/(<div.class=('|\")mesi('|\")>agosto<\/div>)/msi";


    Quote Originariamente inviata da riccardo94 Visualizza il messaggio
    mi chiedevo anche perche non avresti potuto fare cosi (^>) al posto di [^>] . che differenza c'e tra le parentesi quadre e tonde?
    Perché ci sono differenze come nelle parole pane e microscropio. Nulla a che vedere.
    Le parentesi tonde indicano un gruppo della regexp che si vuole ricavare. Vedere come è riempito l'array $matches => post #7 di Alhazred.
    Per escludere un carattere o una serie si usa ^ ma rinchiuso tra [ e ]. => [^ab] significa no a no b.
    Quindi ^ fuori parentesi quadre è l'inizio e dentro è l'esclusione.


    Quote Originariamente inviata da riccardo94 Visualizza il messaggio
    quello che non mi e ancora del tutto chiaro e .+? dice che c’è almeno un carattere ma prendere la stringa con meno caratteri. prende solo stringhe con pochi caratteri, oppure e solo un modo di dire, perche se ci fosse una stringa lunga, ci sarebbero problemi?
    Se hai due stringhe. Una lunga 999 caratteri e una lunga 1000. La più corta è quella con 999 caratteri.
    Se hai due stringhe. Una lunga 2 caratteri e una lunga 3. La più corta è quella con 2 caratteri.

    Capito il concetto ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #39
    quindi un ^ fuori parentesi quadre significa il inizio.. ma anche dentro le parentesi tonde??
    e poi se nel div ci sono due parole esempio, agosto e settembre, il codice reg prende solo agosto?

  10. #40
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Devi guardare la documentazione.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.