Мне нужно окружить все '&' с '|' в строке, но только в том случае, если еще нет '|' есть Например. следующие строки (-> ожидаемый результат):C# Regex заменить на вставку
- "Me & You" -> "Me | & | Вы"
- "Me | & Вы" -> не меняют
- "Me & | Вы" -> не меняют
- "Me & You" -> "Me | & | Вы"
Я понял, селектор (по крайней мере, я подумайте), который будет улавливать пример 1 и 4
[^|]&[^|]
Но теперь я застрял, создав шаблон замены. Я знаю, мне нужно что-то скопировать часть до и после «&», но не может заставить ее работать. Ближайший результат был с
|&|
но также удаляет carácter до и после «&»
Примечание: Я не могу использовать
s.Replace("&", "|&|").Replace("||&", "|&").Replace("&||", "&|");
как строка может уже содержать «| | & "в начале, и это все равно не приведет к ожидаемым результатам.
Любая альтернатива регулярному выражению также приветствуется!
Вам нужно заменить & в начале/конце строки? Есть ли последовательные &? Если нет, используйте группы захвата: '([^ |]) & ([^ |])' и замените на '$ 1 | & | $ 2'. –
Если вам нужны объяснения, я могу опубликовать свой ответ. Дайте мне знать, если вам это нужно. –