Если у нас есть действительные электронные письма, которые появляются так, и тогда наши случаи ограничиваются перечисленными в вопросе, мы просто выполняем простую замену на %
и &&
, с выражением, похожим на:
(%|&&)|($)
Если конец строки может не нуждаться в ;
, тогда эта группа захвата может просто работать, если я правильно понял проблему:
(%|&&)
Если бы мы захотели проверить, то наше выражение стало бы немного сложным для разработки.
Тест
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(%|&&)|($)";
string substitution = @";";
string input = @"1@gmail.com%2@gmail.com
1@gmail.com&&2@gmail.com";
RegexOptions options = RegexOptions.Multiline;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
}
}