Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445

    Regex: rimuovi tutto tranne...

    Le regex sono un casino se non le si usa costantemente XD

    Dunque, ho una stringa del tipo
    <span class="noticeTxt01 noticeTxt02">25 mins</span></p>

    come rimuovo tutto tranne "25 mins" (il numero di minuti può anche essere da 1 o 3 cifre)?
    Io sto provando con una preg_replace(), ma non trovo la regex giusta.

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    forse macchinoso, forse no, ma è la prima cosa che ho pensato, sempre se tutto il resto diverso dalle 2\3 cifre rimane costante:
    Codice PHP:
    <?php
    $str_1 
    "<span class='noticeTxt01 noticeTxt02'>25 mins</span></p>";
    $pos_1 = (strpos($str_1"'>"));
    $pos_2 = (strpos($str_1" m"));
    $cerca = (substr($str_1$pos_1+,$pos_2-2-$pos_1));
    echo 
    $cerca."
    "
    ;
    $str_2 str_replace($cerca30 ,$str_1);
    echo 
    $str_2;
    ?>
    funziona con 2 e 3 cifre e cmq ho sostituito le virgolette che chiudono la class con il singolo apice (carattere che verrà ricercato)
    altra specifica, devi mantenere lo spazio vuoto subito prima di mins
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345

    Re: Regex: rimuovi tutto tranne...

    Originariamente inviato da Alhazred
    Le regex sono un casino se non le si usa costantemente XD

    Dunque, ho una stringa del tipo
    <span class="noticeTxt01 noticeTxt02">25 mins</span></p>

    come rimuovo tutto tranne "25 mins" (il numero di minuti può anche essere da 1 o 3 cifre)?
    Io sto provando con una preg_replace(), ma non trovo la regex giusta.
    Non sono bravo per niente con le regex però ho ripassato un po' e dopo vari tentativi ho trovato una regola che va bene.

    $stringa = '<span class="noticeTxt01 noticeTxt02">25 mins</span></p>';
    preg_replace("/<span.*?>([0-9]{1,3} mins)<\/span><\/p>/is", "$1", $stringa);

    Dovrebbe funzionare così, poi magari ci sono anche regole migliori, più eleganti e precise. Alla fine vedi tu se vuoi mettere ancora ".*?" al posto di </p>.
    Fammi sapere se va bene.


  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445

    Re: Re: Regex: rimuovi tutto tranne...

    Originariamente inviato da costi31
    Non sono bravo per niente con le regex però ho ripassato un po' e dopo vari tentativi ho trovato una regola che va bene.

    $stringa = '<span class="noticeTxt01 noticeTxt02">25 mins</span></p>';
    preg_replace("/<span.*?>([0-9]{1,3} mins)<\/span><\/p>/is", "$1", $stringa);

    Dovrebbe funzionare così, poi magari ci sono anche regole migliori, più eleganti e precise. Alla fine vedi tu se vuoi mettere ancora ".*?" al posto di </p>.
    Fammi sapere se va bene.

    Si, funziona, grazie

  5. #5
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Prego non c'è di che. Meno male che funziona, le ho usate solo un paio di volte le regex e non le ho mai studiate approfonditamente.


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.