Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Preg molto complessa

  1. #1
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273

    Preg molto complessa

    Ciao a tutti.

    Ho un enorme problema: ho un vasto database contente articoli di vario tipo.

    Mi serve creare una serie di preg, ognuna delle quali riconosce un qualcosa di specifico (in tutti i casi bisogna badare ai segni di punteggiatura, spazi, ecc. che potrebbero "disturbare" la ricerca):

    [list=1][*]preg per riconoscimento parole (esempio "cassa" non deve trovare "cassaforte")[*]preg per riconoscimento di numeri di telefono (es. 02/123456789 ma anche 02/123.456.78.9 ma anche 02.123456789 e tutte le possibili combinazioni anche con gli spazi e segni di punteggiatura vari)[*]preg riconoscimento url (es. google.it search.googole.it www.google.it)[*]preg riconoscimento indirizzi email[/list=1]

    Tutte le preg devono essere in php (metodo preg_match).

    So che è una cosa complessa ma questo è essenziale per trovare quello che mi serve in questo database.

    Grazie a tutti coloro che vorranno collaborare

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    55
    (preg_match('/^[A-Z0-9._-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i', $data))

    (preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $email_address))

    If someone need it.. It validates a birth date in format JJMMAAAA
    <?php
    if (preg_match("/
    ^(0[1-9]|[1-2]{1}[0-9]{1}|3[0-1]{1})
    (0[1-9]{1}|1[0-2]{1})
    (19[\d]{2}|200[0-5])$/", $date)
    echo "Ok" ;
    ?>

    A very simple Phone number validation function.
    Returns the Phone number if the number is in the xxx-xxx-xxxx format. x being 0-9.
    Returns false if missing digits or improper characters are included.
    <?
    function VALIDATE_USPHONE($phonenumber)
    {
    if ( (preg_match("/^[0-9]{3,3}[-]{1,1}[0-9]{3,3}[-]{1,1}
    [0-9]{4,4}$/", $phonenumber) ) == TRUE ) {
    return $phonenumber;
    } else {
    return false;
    }
    }
    ?>

    ecc... ecc... su:
    http://it2.php.net/manual/it/function.preg-match.php
    la vita è dura ... per gli altri!

  3. #3
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    Quella del numero di telefono non dovrebbe funzionare, comunque ne ho in mente un altra (forse).

    Le due difficili sono:
    [list=1][*] Url
    "bye.ci sentiamo domani" viene riconosciuto come un url
    "bye.civediamo domani" viene lo stesso riconosciuto come url[*] Parole
    C'è un metodo per definire il "confine" di una parola? una parola termina in presenza di spazi e segni di punteggiatura oppure? chi ha idee in merito?[/list=1]

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    55

    split

    pensavo che la prima cosa che avevi fatto era splittare tutto con lo spazio per analizzare parola per parola...

    ... a volte comunque è più semplice e veloce realizzare più cicli di controllo (anche se un preg molto meticoloso è senza dubbio più efficace ... ma devi essere molto bravo con la sua sintassi.)

    Quindi le cose sono due:
    1) O studi un pò di sintassi delle espressioni che ti sarà utile in futuro).
    2) effettui più cicli di controllo.
    la vita è dura ... per gli altri!

  5. #5
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    Credo che il metodo del for sia da scartare perchè una parola può terminare con un infinità di caratteri, non solo spazi...

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.