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

    espressioni regolari senza ordine

    Carissimi, so che è un argomento trattato infinite volte ma c'è una cosa che proprio non riesco a mettere a fuoco

    ho un'espressione regolare molto semplice:

    /^[a-zA-Z0-9\?']*$/

    sparata dentro un preg_match(...).
    Da quanto ho notato però questa espressione segue l'ordine in cui è stata scritta, ovvero se c'è prima un " ? " e poi un " ' " (un apice singolo) ritornerà true, ma viceversa mi darà false.
    Io sto cercando di filtrare una stringa affinchè possa contenere solo questi determinati caratteri, senza curarmi dell'ordine in cui compaiono.
    Sicuramente sto sbagliando qualcosa e sento che riguarda i delimitatori ^ e $. Any idea? :berto:

  2. #2
    Le espressioni regolari all'interno delle quadre non hanno ordine: il problema lo hai da qualche altra parte. Ho provato la tua espressione e a me funziona correttamente (tieni presente che non trova le "parole", ma le "linee" di testo che corrispondono, perché ^ e $ indicano inizio e fine dell'area di ricerca, solitamente la linea):

    codice:
    $stringhe = array(
        'Provasenzaspazi',
        'Prova con spazi',
        '?\\'',
        '\\'?');
    
    foreach ($stringhe as $stringa) {
        $trovate = preg_match('/^[a-zA-Z0-9\?\\']*$/', $stringa);
        echo "$stringa: $trovate\n";
    }
    Con quanto sopra ho ottenuto il risultato aspettato:

    codice:
    Provasenzaspazi: 1
    Prova con spazi: 0
    ?': 1
    '?: 1

  3. #3
    Ottimo ntd, mi hai illuminato sulla questione spazi... era quella che mi aveva fatto pensare ad un ordine che in realtà non c'entra nulla.

    Effettivamente con una cosa tipo

    codice:
    preg_match('/^[a-zA-Z0-9 \?\']*$/', $stringa);
    (nota lo spazio tra il 9 e il \?) funziona, anche se è veramente di dubbio stile

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.