using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var text = "[{PRE.Word1.Word2}] and [{PRE.Word 3.Word..... 2 %%%}]";
var pattern = @"\[{PRE\.([^][{}.]{1,15})\.(.{1,64}?)}]";
var matches = Regex.Matches(text, pattern);
var props = new List<Property>();
foreach (Match m in matches)
props.Add(new Property(m.Groups[1].Value,m.Groups[2].Value));
foreach (var item in props)
Console.WriteLine("Word1 = " + item.Word1 + ", Word2 = " + item.Word2);
}
public class Property
{
public string Word1 { get; set; }
public string Word2 { get; set; }
public Property()
{}
public Property(string w1, string w2)
{
this.Word1 = w1;
this.Word2 = w2;
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgdGV4dCA9ICJbe1BSRS5Xb3JkMS5Xb3JkMn1dIGFuZCBbe1BSRS5Xb3JkIDMuV29yZC4uLi4uIDIgJSUlfV0iOwoJCXZhciBwYXR0ZXJuID0gQCJcW3tQUkVcLihbXl1be30uXXsxLDE1fSlcLiguezEsNjR9Pyl9XSI7CgkJdmFyIG1hdGNoZXMgPSBSZWdleC5NYXRjaGVzKHRleHQsIHBhdHRlcm4pOwogICAgICAgIHZhciBwcm9wcyA9IG5ldyBMaXN0PFByb3BlcnR5PigpOwogICAgICAgIGZvcmVhY2ggKE1hdGNoIG0gaW4gbWF0Y2hlcykKICAgICAgICAgICAgcHJvcHMuQWRkKG5ldyBQcm9wZXJ0eShtLkdyb3Vwc1sxXS5WYWx1ZSxtLkdyb3Vwc1syXS5WYWx1ZSkpOwogICAgICAgIAogICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIHByb3BzKQogICAgICAgIAlDb25zb2xlLldyaXRlTGluZSgiV29yZDEgPSAiICsgaXRlbS5Xb3JkMSArICIsIFdvcmQyID0gIiArIGl0ZW0uV29yZDIpOwoJfQoJCglwdWJsaWMgY2xhc3MgUHJvcGVydHkKCXsKICAgIAlwdWJsaWMgc3RyaW5nIFdvcmQxIHsgZ2V0OyBzZXQ7IH0KICAgIAlwdWJsaWMgc3RyaW5nIFdvcmQyIHsgZ2V0OyBzZXQ7IH0KICAgIAlwdWJsaWMgUHJvcGVydHkoKQogICAgCXt9CiAgICAJcHVibGljIFByb3BlcnR5KHN0cmluZyB3MSwgc3RyaW5nIHcyKQogICAgCXsKICAgIAkJdGhpcy5Xb3JkMSA9IHcxOwogICAgCQl0aGlzLldvcmQyID0gdzI7CiAgICAJfQoJfQp9