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

    espressione regolare (stringa divisa)

    Ciao Ragazzi,

    ho un esigenza e non sono molto ferrato con le espressioni regolari.
    devo verificare che una stringa sia divisa da '(spazio)-(spazio)' per esempio:

    sbagliato: Nec N410i
    sbagliato: Nec-N410i
    sbagliato: NecN410i
    sbagliato: NecN410i-
    sbagliato: Nec - N410i - aaa
    giusto: Nec - N410i

    come posso fare?
    mi affido alla vostra grande esperienza!

    grazie......
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  2. #2
    in php, per quello, non servono le espressioni regolari (o meglio, io non le userei!)
    farei:
    Codice PHP:
    $striga "ABCDE - FGHI";
    $array_elementi explode(" - "$stringa); 
    if (
    count($array_elementi) != 2) {
        
    // stringa sbagliata gli elementi non sono due!
    }
    else {
        
    // gli elementi sono due! Stringa Ok

    oppure, in una riga:
    Codice PHP:
    $striga "ABCDE - FGHI";
    if (
    count(explode(" - "$stringa)) != 2) {
        
    // stringa sbagliata gli elementi non sono due!
    }
    else {
        
    // gli elementi sono due! Stringa Ok


    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    Nell'attesa che posti qc più bravo di me
    con le regex prova questa:

    $string= 'Nec - N410i - aaa';
    var_dump(preg_match('#^[\w]+\s\-\s[\w]+\s\-\s[\w]+$#D', $string));


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    grazie whisher provo subito...vi farò sapere...
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  5. #5
    $string= 'Nec - N410i - aaa';
    var_dump(preg_match('#^[\w]+\s\-\s[\w]+\s\-\s[\w]+$#D', $string));

    non funziona...ma che centrano i #?

    in più ho provato anche questa..fatta da me:

    $string= 'Nec - N410i';
    $result = eregi('^[0-9A-Za-z][\t\n\r]{1}\-[\t\n\r]{1}[0-9A-Za-z]$', $string);
    echo ($result)?"giusto":"Sbagliato";


    ma niente.....

    aiuto!!
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  6. #6
    Aiutatemi vi prego......

    ho provato questa:
    ^[0-9A-Za-z]{1,}[\s]+-[\s]+[0-9A-Za-z]{1,}$


    ma ninte... non calcola gli spazi....
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  7. #7
    Originariamente inviato da tikre
    non funziona...ma che centrano i #?

    in più ho provato anche questa..fatta da me:

    $string= 'Nec - N410i';
    $result = eregi('^[0-9A-Za-z][\t\n\r]{1}\-[\t\n\r]{1}[0-9A-Za-z]$', $string);
    echo ($result)?"giusto":"Sbagliato";


    ma niente.....

    aiuto!!
    I # sono delimitatori di solito usi
    / ma mi garbano di più i # questione di gusti

    Ma non funziona in che cosa toppa ?
    match una stringa 'Nec - N410i - aaa'
    Da un rapido test a me sembra funzionare.




    NB
    Le eregi cioè le non posix sono deprecate .....
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Prova così:
    Codice PHP:
    $rex='/^\\w+\\x20-\\\x20\\w+$/';
    if(
    preg_match($rex,$str)) {
    //... 
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  9. #9
    grazie Anakin
    comunque ho risolto il problema era proprio negli spazi [\t\n\r] php non lo digerisce...ed ho svuotato le parentesi [ ], in questo modo funziona!

    comunque proverò anche il tuo!
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  10. #10
    Originariamente inviato da Anªkin
    Prova così:
    Codice PHP:
    $rex='/^\\w+\\x20-\\\x20\\w+$/';
    if(
    preg_match($rex,$str)) {
    //... 
    Scusa ma son curioso perchè usi x20 al posto si \s
    che per essere un principiante non ero andato così
    male peccato abbia sbagliato la stringa pattern
    Nec - N410i - aaa


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.