Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,898

    Eliminare parole a inizio stringa

    Avrei la necessità, ove presenti, di eliminare le parole "In" e "Oltre", ove presenti, dall'inizio di una stringa. La stringa è una variabile che raccoglie i dati provenienti da un form. Provando con le RegExp in questo modo, elimina le occorrenze in questione da tutta la stringa, mentre io vorrei farlo solo all'inizio:

    string manigliaReplace = Regex.Replace(manigliaRimpiazzata, "[_|In|Oltre]", " ");
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2

  3. #3
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,898
    Quote Originariamente inviata da djciko Visualizza il messaggio
    Ti ringrazio,ma ho un dubbio: nel momento in cui determino che la stringa inizia in un certo modo, in che maniera elimino, dall'inizio, una determinata parola?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,791
    se si verifica la condizione per "In" fai una replace di "In" con String.Empty

    se si verifica la condizione per "Oltre" fai una replace di "Oltre" con String.Empty


    ...anzi, ora che ci penso puoi anche non testare le condizioni.
    La replace se non trova le parole non fa nulla e basta, e c'e' il modo di eliminare solo la prima occorrenza con i parametri
    Ultima modifica di djciko; 03-02-2020 a 13:19

  5. #5
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,093
    In regex, mettendo il simbolo "^" all'inizio della regex, limita la ricerca all'inizio.

  6. #6
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,898
    Quote Originariamente inviata da djciko Visualizza il messaggio
    se si verifica la condizione per "In" fai una replace di "In" con String.Empty

    se si verifica la condizione per "Oltre" fai una replace di "Oltre" con String.Empty


    ...anzi, ora che ci penso puoi anche non testare le condizioni.
    La replace se non trova le parole non fa nulla e basta, e c'e' il modo di eliminare solo la prima occorrenza con i parametri
    Ma in questo modo non mi elimina anche le occorrenze trovate all'interno delle parole?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  7. #7
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,709
    una volta verificata l'occorrenza, se l'occorrenza è di "IN"
    stringa.substring(2)
    se invece l'occorrenza è di "oltre"
    stringa.substring(5)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,791
    C#

    codice:
    public string replacePrimaOccorrenza(string input)
    {
        StringBuilder sb = new StringBuilder();
         
    
        // Faccio a pezzettini la stringa di input tramite lo spazio fra una parola e l'altra
        string[] arrString;
        arrString = input.Split(' ');
    
    
        // Verifico se la prima parola è una delle due cercate (si possono anche parametrizzare)
        if (arrString[0].ToString().ToUpper() == "IN" || arrString[0].ToString().ToUpper() == "OLTRE")
        {
            for (int i = 1; i < arrString.Length; i++)
                sb.Append(arrString[i].ToString() + " ");
        }
    
    
        // Ritorno la stringa senza spazio finale
        return sb.ToString().Trim();
    }

    provata con:

    string a = replacePrimaOccorrenza("Oltre la siepe vi era una volpe");
    string b = replacePrimaOccorrenza("In un attimo gli sembrò chiara la soluzione");

    funziona
    Ultima modifica di djciko; 03-02-2020 a 22:31

  9. #9
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,093
    Ripeto, questo è lavoro da Regex, usa:
    "^(In|Oltre)"
    Provala qua https://regex101.com/

    Attento che le regex sono case sensitive, c'è un opzione che non ricordo per farle case insensitive.

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,709
    E se comincia con "Inoltre..."?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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 © 2020 vBulletin Solutions, Inc. All rights reserved.