Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1

    espressioni regolari: parole separate da virgola

    ho scritto questa preg [a-zA-Z\s]*(,[a-zA-Z\s]*)? e vorrei che il campo fosse una cosa del genere: dfdf fds dfsdf,fdfd,fsdf ma non capisco perché me lo valida solo fino a dfdf fds dfsdf,fdfd e tralascia l'ultimo pezzetto...


    un aiutino?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    così dovrebbe andare [a-zA-Z\s]*(,[a-zA-Z\s]+)*
    ora mia manca da verificare che tra una parola e l'altra ci sia un solo spazio. Ma mi sa che taglierò la testa al toro e farò un bel ereg_replace
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    codice:
    <?php
    $test = "dfdf fds dfsdf,fdfd,fsdf";
    
    
    echo preg_replace(
    	"/(?i)([a-z]+\s{1}|[a-z]+|,[a-z]+)/e", 
    	'"[".preg_replace("/\s|,/", "", "\\1")."]"', 
    	$test
    );
    
    // risultato:
    // [dfdf][fds][dfsdf][fdfd][fsdf]
    ?>
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    ciao andr3a e grazie per la funzione, ma quello che volevo ottente io era, data una stringa del genere:
    codice:
    pippo pluto           paperino,topolino, minnie           paperone
    è quello di ottenere:
    [pippo pluto paperino][topolino][minnie paperone]

    cioè io devo solo verificare che i vari spezzoni siano separati da una virgola e che nei vari spezzoni le parole non siano separate da più spazi, ma da uno solo











    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    ci sono...così dovrebbe andar bene:
    codice:
    function checkTag( $tag ){
    	return preg_match("/^[a-zA-Z]*(\s)?(,[a-zA-Z]*(\s)?)*$/", $tag);
    }

    l'unica cosa che non mi piace è che non mi accetta un eventuale spazio dopo la virgola...vedo di smanettarci ancora un attimo
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  6. #6
    non è vero non mi funziona invece
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    così, salvo altre complicazioni dovrebbe andare...io ho fatto un po' di prove e la preg mi ha soddisfatto...se trovate qualche baco me lo dite?

    codice:
    function checkTag( $tag ){
    	return preg_match("/^(([\w]+(\s)?)*)+((,)(\s)?([\w]+(\s)?)*)*$/", $tag);
    }
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    Originariamente inviato da 13manuel84
    cioè io devo solo verificare che i vari spezzoni siano separati da una virgola e che nei vari spezzoni le parole non siano separate da più spazi, ma da uno solo
    e allora questa non va bene
    codice:
    pippo pluto           paperino,topolino, minnie           paperone
    [pippo pluto paperino][topolino][minnie paperone]

    perchè tra pluto e paperino c'è più di uno spazio ... poi alla fine hai fatti una preg_match ?


    mica ho capito bene come o cosa ti serve ... ma se hai risolto, meglio così
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    spiegare i problemi non è mai stato un mio punto forte

    quello che dovevo verificare era che data una stringa ci fossero dei tag separati da virgola.
    Ogni tag può essere o una parola singola o un insieme di più parole separate tra loro da un unico spazio.

    l'esempio che avevo fatto sopra era perché la preg che avevo fatto accettava spazi multipli e quindi mi serviva qualcosa che li eliminasse. Oppure, al posto di eliminarli era sufficiente una preg che ne accettasse uno solo...e penso che l'ultima faccia al caso mio.











    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  10. #10
    Originariamente inviato da 13manuel84
    Ogni tag può essere o una parola singola o un insieme di più parole separate tra loro da un unico spazio.
    codice:
    <?php
    $match = "/^((\w+\s)+\w+|,\w+|\w+)+$/";
    
    $test = "dfdf fds dfsdf,fdfd,fsdf";
    if(preg_match($match, $test))
    	echo "1 OK
    ";
    
    $test = "pippo pluto           paperino,topolino, minnie           paperone";
    if(preg_match($match, $test))
    	echo "2 OK
    ";
    
    // risultato 
    // 1 OK
    ?>
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.