Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130

    punto con escape nelle regexp

    io pensavo che i caratteri speciali dovessero essere preceduti dall'escape per essere usati nelle espressioni regolari. Invece ho trovato che se si fa:

    <?php

    $stringa = "abc.123@yahoo.it";

    if(eregi("^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$", $stringa))


    {
    echo "stringa conforme!
    ";
    }

    else

    {
    echo "stringa NON conforme!
    ";
    }

    ?>

    mi da per buona la stringa dell'email! Ma il punto non dovrebbe essere stato scritto con escape? tipo: ^[a-zA-Z0-9\._-]????

  2. #2
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Re: punto con escape nelle regexp

    Originariamente inviato da nourdine
    io pensavo che i caratteri speciali dovessero essere preceduti dall'escape per essere usati nelle espressioni regolari. Invece ho trovato che se si fa:

    if(eregi("^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$", $stringa
    Mettila cosė

    if(eregi("/ ^[a-zA-Z0-9\ ._-]+@[a-zA-Z0-9\ ._-]+\.([a-zA-Z]{2,4})$/ ", $stringa))

  3. #3
    I caratteri speciali sono speciali solo se non sono racchiusi in una classe di caratteri, cioč tra parentesi quadre. Ad eccezione del ^ posto all'inizio e del "-" e "]". Anche se il meno credo non sia speciale se posto in fondo alla classe.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  4. #4
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130
    appunto! il punto qui dovrebbe diventare speciale (ogni carattere). Invece č letto in senso letterale anche senza essere escapeato! come mai? io ci metterei l'escape se dipendesse da me dato che mi interessa permettere il punto in questa parte della stringa.

  5. #5
    Originariamente inviato da nourdine
    appunto! il punto qui dovrebbe diventare speciale (ogni carattere). Invece č letto in senso letterale anche senza essere escapeato! come mai? io ci metterei l'escape se dipendesse da me dato che mi interessa permettere il punto in questa parte della stringa.
    Forse mi sono spiegato male:
    la regola č che all'interno delle parantesi quadre i caratteri speciali tornano normali, quindi č giusto che scrivendo [a-zA-Z0-9._-] il punto venga visto come punto.

    Se ci pensi poi il punto č giā di per sč una classe di caratteri (tutti tranne l'a capo) quindi č anche una comoditā che venga interpretato come carattere e non come meta-carattere all'interno di una classe. Scrivere [.a-z] sarebbe ridondante.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  6. #6
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130
    ok ... capito

    grazie

  7. #7
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697
    Originariamente inviato da nourdine
    ok ... capito

    grazie
    Per ulteriori dati guarda qui http://fido.altervista.org/RegExp/metacar1.html

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.