Добавьте пространство вокруг каждого / используя Humanizer или Regex

У меня есть строка, подобная следующей:

var text = @"Some text/othertext/ yet more text /last of the text";

Я хочу нормализовать пробелы вокруг каждой косой черты, чтобы она соответствовала следующему:

var text = @"Some text / othertext / yet more text / last of the text";

То есть один пробел перед каждым слешем и один пробел после. Как я могу сделать это с помощью Humanizer или, за исключением этого, с одним регулярным выражением? Humanizer является предпочтительным решением.

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

var regexLeft = new Regex(@"\S/");    // \S matches non-whitespace
var regexRight = new Regex(@"/\S");
var newVal = regexLeft.Replace(text, m => m.Value[0] + " /");
newVal = regexRight.Replace(newVal, m => "/ " + m.Value[1]);

1 ответ

Решение

Вы ищете это:

  var text = @"Some text/othertext/ yet more text /last of the text";

  // Some text / othertext / yet more text / last of the text 
  string result = Regex.Replace(text, @"\s*/\s*", " / ");

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

Другие вопросы по тегам