Вариантов должно быть так много, может быть, среди последних есть регулярные выражения.
Но, если мы хотим использовать выражение для этой проблемы, давайте начнем с простого и исследуем другие варианты, возможно, что-то похожее на:
(.+=)?(.+?);
или
(.+=)?(.+?)(?:;.+)
где вторая группа захвата имеет желаемое word2
.
Пример 1
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(.+=)?(.+?);";
string input = @"word1=word2;word3
word2;word3";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Пример 2
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(.+=)?(.+?)(?:;.+)";
string substitution = @"$2";
string input = @"word1=word2;word3
word2;word3";
RegexOptions options = RegexOptions.Multiline;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
}
}