0
votes

Remplacez l'espace par des guillemets intérieurs uniquement en utilisant Regex

J'ai une chaîne comme:

" smth, value, 'val¤', '¤name¤surname' "

Et je veux remplacer l'espace blanc entre les guillemets par ¤ pour que le résultat soit:

" smth, value, 'val ', ' name surname' "

S'il vous plaît, y a-t-il un moyen de le faire avec regex?


0 commentaires

3 Réponses :


0
votes

2 commentaires

J'ai ajouté votre solution et la mienne à netfiddle . Je ne pense pas que votre code fonctionne comme prévu par OP


Mon mauvais ... Je n'ai pas bien lu le sujet. Merci yoo d'avoir examiné mon code.



2
votes

Vous pouvez utiliser regex pour rechercher du texte dans les quotas. Ensuite, utilisez une chaîne simple remplace

var input = " smth, value, 'val ', ' name surname' ";
var result =  Regex.Replace(input, "'(?<text>[^']+?)'", m =>
{
    var replacement = "¤";
    return $"'{m.Groups["text"].Value.Replace(" ", replacement)}'";
});


2 commentaires

Bien fonctionne, mais que faire si nous avons des guillemets doubles et simples?


@bramzoti Ce serait mieux si vous posez une nouvelle question avec des exemples d'entrée et de sortie attendue



0
votes

Vous pouvez également utiliser celui-ci qui gérera tous les espaces blancs possibles avec un espace.

    string temp = " smith, value,' val ',' name surname'";

        Console.WriteLine("Before  Replace :: "+ temp);
        Regex regex = new Regex(@"[\s\'][\s\']");
        string t = regex.Replace( temp,"@");
        Console.WriteLine("After Replace :: "+ t);


1 commentaires

Cela ne fonctionne pas correctement. Vous devez également faire correspondre le nom et le prénom.