Замените пробел только внутри кавычек с помощью регулярных выражений - PullRequest
0 голосов
/ 25 июня 2019

У меня есть строка вроде:

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

И я хочу заменить пробел внутри кавычек на ¤, поэтому результат будет:

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

Пожалуйста, есть ли способ сделать это с помощью регулярных выражений?

Ответы [ 3 ]

2 голосов
/ 25 июня 2019

Вы можете использовать регулярные выражения, чтобы найти текст в квотах.Затем используйте простую строку заменить

var input = " smth, value, 'val ', ' name surname' ";
var result =  Regex.Replace(input, "'(?<text>[^']+?)'", m =>
{
    var replacement = "¤";
    return $"'{m.Groups["text"].Value.Replace(" ", replacement)}'";
});
0 голосов
/ 25 июня 2019

Вы также можете использовать этот, который будет обрабатывать все возможные пробелы с пробелом.

    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);
0 голосов
/ 25 июня 2019

Из C # Учебники :

Regex regex = new Regex(" (¤^ ¤+) ");
string cleanString = regex.Replace(testString, "[$1]");
Console.WriteLine(cleanString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...