using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(\[(test|test2)(?![\w-]).*?\](?![""])(.*?\[\/(\2)\])?)";
string input = @"[ct_col col=""4""][test data=""Test Text"" color=""#ffffff"" multi=""test 1,test 2""][/ct_col]
[ct_col col=""4""][test2 text=""Test Text"" email=""example@gmail.com"" textarea=""Test Text"" editor=""Test Text"" select=""test2"" radio=""test2"" checkbox=""test2"" radio_image=""test2"" checkbox_image=""test2"" radio_button=""test2"" checkbox_button=""test1,test3"" text_multi=""test 1,test 2"" number=""50"" range=""50"" dimension=""20,px"" Icon=""fa fa-cogs"" color=""#ff00ff"" rgba=""rgba(25,56,58,0.65)"" font_style=""[object Object]"" text_align=""left"" image=""[]"" font=""[]""][/ct_col]
[ct_col col=""4""][test data=""Test Text"" color=""#ffffff"" multi=""test 1,test 2""][/ct_col]
[ct_col col=""4""][test data=""Test Text"" color=""#ffffff"" multi=""test 1,test 2""]dsdssd[/test][/ct_col]
[ct_col col=""4""][test2 data=""Test Text"" color=""#ffffff"" multi=""test 1,test 2""]dsdssd[/test2][/ct_col]
[ct_col col=""4""][test data=""Test Text"" color=""#ffffff"" multi=""test 1,test 2""]dsd [test2 data=""Test Text"" color=""#ffffff"" multi=""test 1,test 2""]dsdssd[/test2] ssd[/test][/ct_col]
[ct_col col=""4""][test data=""Test Text"" color=""#ffffff"" multi=""test 1,test 2""]dsd [test data=""Test Text"" color=""#ffffff"" multi=""test 1,test 2""]dsdssd[/test] ssd[/test][/ct_col]";
foreach (Match m in Regex.Matches(input, pattern))
{
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