Как составить regex на C# для типографики текстовой строки?

Задача простая, как ее решить алгоритмически я понимаю, но не очень силен в регулярках.
Надо в текстовой строке заменить все множественные пробельные символы на один пробел, а потом для всех слов состоящих менее чем из четырех символов заменить следующий за ними пробел на конструкцию " " (то есть привязать такие слова к следующим за ними словам неразрывным пробелом).

Вот как это выглядит у меня в классике:
public static string TyporgafMin(
	this string source)
{
	if (string.IsNullOrEmpty(source))
		return string.Empty;
	var a1 = source.Split(' ', StringSplitOptions.RemoveEmptyEntries);
	var sb = new StringBuilder();
	foreach (var w1 in a1.SkipLast(1))
		if (w1.Length < 4)
			sb.Append($"{w1}&nbsp;");
		else
			sb.Append($"{w1} ");
	sb.Append(a1.Last());
	return sb.ToString();
}

Но на regex, вероятно, будет проще и изящнее...
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
Nipheris
@Nipheris Куратор тега C#
Замена множественных пробелов на один: https://regex101.com/r/IY9676/1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы