using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(""""(?:[^""\\]|\\.|\\\n)*""""|\'\'\'(?:[^'\\]|\\.|\\\n)*\'\'\'|""(?:[^""\\\n]|\\.|\\\n)*""|'(?:[^'\\\n]|\\.|\\\n)*'|\[=\[[\w\W]*?\]=\]|\[\[[\w\W]*?\]\])";
string input = @"local a = getInterface() --- get ""interface"" (match here is ok, but not necessary)
[[
multiline
string
""""
inside
"""" (should not match the """" pattern
another
multiline]] (the outer multiline string should match)
local a = 0 -- silly'''comment (should not match the first ''' and look down for closing ''')
local a = ''' ---this is a normal multiline string and not a comment
''' (should match this)
""""filler'''filler\"""" (this should match "" and ""filler'''\"" with a trailing "" unmatched
""""filler'''filler\"""" (This should match the entire line)";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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