Это можно сделать с помощью простого регулярного выражения:
var result = Regex.Replace(input, @"\s?\|\s?", "|");
Это будет соответствовать любому (необязательному) символу пробела, за которым следует символ |
, за которым следует (необязательный) символ пробелаи замените его одним |
символом.
В качестве альтернативы, если вам нужно потенциально убрать несколько пробелов вокруг |
, замените квантификаторы нуля или единицы (?
) нулямиили более квантификаторы (*
):
var result = Regex.Replace(input, @"\s*\|\s*", "|");
Чтобы иметь дело с несколькими пробелами между числами (не только около |
символов), я бы порекомендовал что-то вроде этого:
var result = Regex.Replace(input, @"\s*([\s|])\s*", "$1")
Это будет соответствовать любому появлению нуля или более символов пробела, сопровождаемых или символом пробела или символом |
(захваченным в группе 1
), сопровождаемым нулем или больше символов пробела и заменяющим егос тем, что было захвачено в группу 1
.