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?
3 Réponses :
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.
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)}'";
});
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
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);
Cela ne fonctionne pas correctement. Vous devez également faire correspondre le nom et le prénom.