Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Riconoscere singolare/plurale

    Come stristr esamina senza distinguere tra lettere maiuscole e minuscole, esiste una parola che non distingue singolare/plurale?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    Mi sembra improbabile, perché dovrebbe disporre di un dizionario di ogni lingua, oppure generalizzare a qualche regola... No, direi proprio di no.
    *********************************
    Andrea
    *********************************

  3. #3
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697
    Originariamente inviato da Squall1988
    Mi sembra improbabile, perché dovrebbe disporre di un dizionario di ogni lingua, oppure generalizzare a qualche regola... No, direi proprio di no.
    Se non si può in questo modo, dici che c'è forse un modo particolare di scrivere la parola, es: casa/e , mela/e in modo che mi evita di scrivere tutte le parole 2 volte...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    Beh tu puoi scriverti una funzione che verifichi le regole di base, appunto la a che diventa e. Però chiaramente esistono parole che da a ad e non diventano plurali e parole che non cambiano proprio dal singolare al plurale... boh! Oppure magari cercare se qualcuno ha già avuto voglia di farti un dizionario.
    Oppure aspettare che magari qui passi qualcuno che ha avuto il tuo stesso problema...
    *********************************
    Andrea
    *********************************

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    così su due piedi direi che sarebbe piu opportuno verificare un' occorrenza su le ultime 2 lettere, magari inserendo in un array le occorrenze... però non sarà mai affidabile al 100% e molto dipende dalla correttezza e completezza dei dati che metti nell' array

    es.:
    Codice PHP:

    $combi
    =array("ba"=>"be","ca"=>"che"ecc... )

    //verifico 
    $stringa "pesca";

    foreach (
    $combi as $singolare=>$plurale)
    {
    if (
    substr($stringa,-2) == $singolare)
    echo 
    "$stringa è singolare e il suo plurale è ".substr($stringa,0,(strlen($stringa)-2)).$plurale;

    in alcuni casi anche tre lettere...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697
    Originariamente inviato da dottwatson
    così su due piedi direi che sarebbe piu opportuno verificare un' occorrenza su le ultime 2 lettere, magari inserendo in un array le occorrenze... però non sarà mai affidabile al 100% e molto dipende dalla correttezza e completezza dei dati che metti nell' array

    es.:
    Codice PHP:

    $combi
    =array("ba"=>"be","ca"=>"che"ecc... )

    //verifico 
    $stringa "pesca";

    foreach (
    $combi as $singolare=>$plurale)
    {
    if (
    substr($stringa,-2) == $singolare)
    echo 
    "$stringa è singolare e il suo plurale è ".substr($stringa,0,(strlen($stringa)-2)).$plurale;

    in alcuni casi anche tre lettere...
    Stavo pensando ad una reg exp...

  7. #7
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697
    Originariamente inviato da dottwatson
    così su due piedi direi che sarebbe piu opportuno verificare un' occorrenza su le ultime 2 lettere, magari inserendo in un array le occorrenze... però non sarà mai affidabile al 100% e molto dipende dalla correttezza e completezza dei dati che metti nell' array

    es.:
    Codice PHP:

    $combi
    =array("ba"=>"be","ca"=>"che"ecc... )

    //verifico 
    $stringa "pesca";

    foreach (
    $combi as $singolare=>$plurale)
    {
    if (
    substr($stringa,-2) == $singolare)
    echo 
    "$stringa è singolare e il suo plurale è ".substr($stringa,0,(strlen($stringa)-2)).$plurale;

    in alcuni casi anche tre lettere...
    ho creato questo codice js e funziona, ora si tratta di creare una reg in php e richiamarla al posto di questa in js, si può fare?

    function controlla1(){
    var f = document.mioform1;
    var parole = new RegExp("\\b(mel(a|e)|per(a|e))\\b");
    var stringa = document.mioform1.nome.value;
    if(stringa.match(parole) && stringa.match(parole)[0]){
    f.nome.style.backgroundColor='red'
    alert("La parola '"+stringa.match(parole)[0]+"' non è ammessa");
    return false;
    }

  8. #8
    un po' in ritardo ma sempre utilie a chi ne avesse bisogno, naturalmente, è sempre possibile aggiungere dei suffissi per aumentarne la precisione:



    Codice PHP:
    function plur2sing($stringa) {

        
    $stinga strtolower($stinga);

        
    $combi=array("be"=>"ba",
            
    "che"=>"ca",
            
    "cchie"=>"cchio",
            
    "ce" => "cia",
            
    "de" => "da",
            
    "fe" => "fa",
            
    "ghe" => "ga",
            
    "glie" => "glia",
            
    "le" => "la",
            
    "me" => "ma",
            
    "ne" => "na",
            
    "pe" => "pa",
            
    "que" => "qua",
            
    "re" => "ra",
            
    "se" => "sa",
            
    "te" => "ta",
            
    "ve" => "va",
            
    "ze" => "za",
            
    "bi" => "bo",
            
    "occhi" => "occhio",
            
    "chi" => "co",
            
    "rci" => "rco",
            
    "vortici"=>"vortice",
            
    "rtici" => "rtico",
            
    "ci" => "cio",
            
    "fedi" => "fede",
            
    "di" => "do",
            
    "fi" => "fo",
            
    "gi" => "go",
            
    "ghi" => "go",
            
    "gli" => "glio",
            
    "armi" => "arme",
            
    "li" => "lo",
            
    "mi" => "mo",
            
    "oni" => "one",
            
    "rni" => "rno",
            
    "treni"=> "treno",
            
    "oni" => "one",
            
    "ini" => "ino",
            
    "eni" => "eno",
            
    "pi" => "po",
            
    "ari" => "are",
            
    "ccessori" => "ccessorio",
            
    "bri" => "bro",
            
    "ri" => "re",
            
    "si" => "so",
            
    "isti" => "ista",
            
    "ti" => "to",
            
    "zi" => "zo",
            
    "ii" => "io",
            
    "erei" => "ereo"
            
    "nei" => "neo",
            
    "ue" => "ua");
            

    $sing_word $stringa;

    foreach (
    $combi as $plurale=>$singolare)


        {
            
            if (
    substr($stringa,strlen($plurale)*-1) == $plurale) {
                
    $sing_word substr($stringa,0,strlen($stringa)-strlen($plurale)).$singolare;
                break;
            }
            
            
        }

        return 
    $sing_word;


    logicamente, si può scambiare il tutto ed ottenere il plurale dal singolare.

    ciao!

  9. #9
    Non è banale e ci sono un sacco di eccezioni, di piu': come ogni lingua viva è in continua evoluzione.

    Ad esempio solo con i sostantivi:
    "euro->euro"/"euro->euri",
    "pomodoro->pomidoro"/"pomodoro->pomodori",
    "camerata->camerata"/"camerata->camerati",
    "paracadute-> paracadute" ecc..

    A voler essere precisi, penso ci si debba rivolgere all'Accademia della Crusca.

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.