0
votes

C # écrire un mot à la fin, si le modèle de chaîne contient

J'essaie d'écrire du code,

Toute ligne qui contient le mot «océan», je vais écrire «l'eau» à la fin p>

Comment conduirais-je avec REGETEX? P>

échantillon: strong> p> xxx pré>

résultat (garde tout autre espacement dans le fichier): strong> p>

    public string FileRead(string path)
    {
        content = File.ReadAllText(path);
        return content;
    }

    public string FileChange()
    {

        var lines = content.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
                    .Select(line => Regex.Replace(line, @"\bocean\b\n", "water \n"));
        content = String.Join("\n", lines);
        return content;
    }


2 commentaires

Vous ne semblez pas avoir océan comme mot entier. Pourquoi Regex alors? Vérifiez simplement si une ligne contient océan et appendez eau à la fin de ceux qui l'ont.


J'ai ajouté des solutions de non-regex et de regex. Voir Ma réponse ci-dessous .


3 Réponses :


0
votes

Vérifiez ceci xxx

Fiddle de travail


3 commentaires

Je ne pense pas que vos matchs de rééglementation abcdocean123 , est-ce que ça?


Merci, ne semble pas encore fonctionner, je vais continuer à rechercher


Pouvez-vous s'il vous plaît vérifier à nouveau?



1
votes

Vous devez vérifier si une ligne contient océan code> et, si oui, appendez l'eau code> à cette ligne uniquement:

var content = "test1\n\nabcdocean123 \n\n\ntest2\ntest3";
content = Regex.Replace(content, @"ocean.*", "$&water");
// If your line endings are CRLF, use
// content = Regex.Replace(content, @"ocean[^\r\n]*", "$&water");
Console.WriteLine(content);


0 commentaires

0
votes

Il n'est pas nécessaire d'utiliser regex dans votre cas, si j'ai eu votre question à droite.

Vous pouvez simplement vérifier que la chaîne de connexion contient la phrase océan et ajoute le mot water alors. xxx

Vous pouvez exécuter ce code sur DOTNETFIDDLE


0 commentaires