using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^((?:(?:[^""\n;]*""[^""\n]*"")+(?!""))?+[^""\n;]*+""?[^""\n;]*);.*";
string substitution = @"$1";
string input = @"Peekaboo ; A comment starts with a semicolon and continues till the EOL
Unless the semicolon is surrounded by dquotes ""Don’t do it ; here"" ;but match me; once
Im not surrounded ""so pay attention to me"" ; ""peekaboo""
Im not surrounded ""so pay attention"" to;me"" ; ""peekaboo""
Im not surrounded ""so pay attention to me ; peekaboo
Dquote escapes a dquote so ""dont pay attention to ""me;here"" buster"" do it ; here
Don’t pay attention to """"me;here"""" but do ""it;here""
and ""dont do ""it;here"""" either ;peekaboo
but ""pay attention to ""it;here"" ;not here though
Simon said ""I like goats"" then he added ""and sheep;"" ;a good comment is ""here
Simon said ""I like goats"" then he added ""and sheep;"" dont do it here
Simon said ""I like goats;""peekaboo
Simon said ""I like goats;""peekaboo
""I like goats;""peekaboo
""I like goats;""peekaboo
""aaa ; bb""";
RegexOptions options = RegexOptions.Multiline;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx