using System;
using System.Text.RegularExpressions;
using System.Linq;
public class Test
{
public static void Main()
{
var str =
@"namespace MyNameSpace
{
[MyAttribute]
public class MyClass
{
[MyPropertyAttribute(DefaultValue = ""Default Value 1"")]
public static string MyProperty1
{
get { return ""hello1""; }
}
[MyPropertyAttribute(DefaultValue = ""Default Value 2"")]
public static string MyProperty2
{
get { return ""hello2""; }
}
}
}";
var regex =
@"\[MyPropertyAttribute\(DefaultValue = ""([^""]+)""\)\]" +
@"\s+public static string ([a-zA-Z0-9]+)";
var matches = Regex.Matches(str, regex);
foreach (var match in matches.Cast<Match>()) {
Console.WriteLine(string.Format("{{\"{0}\", \"{1}\"}}", match.Groups[2].Value, match.Groups[1].Value));
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CnVzaW5nIFN5c3RlbS5MaW5xOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgCXZhciBzdHIgPQoJCUAibmFtZXNwYWNlIE15TmFtZVNwYWNlCgkJCXsKCQkJCVtNeUF0dHJpYnV0ZV0KCQkJCXB1YmxpYyBjbGFzcyBNeUNsYXNzCgkJCQl7CgkJCgkJCQkJW015UHJvcGVydHlBdHRyaWJ1dGUoRGVmYXVsdFZhbHVlID0gIiJEZWZhdWx0IFZhbHVlIDEiIildCgkJCQkJcHVibGljIHN0YXRpYyBzdHJpbmcgTXlQcm9wZXJ0eTEKCQkJCQl7CgkJCQkJCWdldCB7IHJldHVybiAiImhlbGxvMSIiOyB9CgkJCQkJfQoJCQoJCQkJCVtNeVByb3BlcnR5QXR0cmlidXRlKERlZmF1bHRWYWx1ZSA9ICIiRGVmYXVsdCBWYWx1ZSAyIiIpXQoJCQkJCXB1YmxpYyBzdGF0aWMgc3RyaW5nIE15UHJvcGVydHkyCgkJCQkJewoJCQkJCQlnZXQgeyByZXR1cm4gIiJoZWxsbzIiIjsgfQoJCQkJCX0KCQkKCQkJCX0KCQkJfSI7CgkKCQl2YXIgcmVnZXggPQoJCQlAIlxbTXlQcm9wZXJ0eUF0dHJpYnV0ZVwoRGVmYXVsdFZhbHVlID0gIiIoW14iIl0rKSIiXClcXSIgKwoJCQlAIlxzK3B1YmxpYyBzdGF0aWMgc3RyaW5nIChbYS16QS1aMC05XSspIjsKCQkKCQl2YXIgbWF0Y2hlcyA9IFJlZ2V4Lk1hdGNoZXMoc3RyLCByZWdleCk7CgkJCgkJZm9yZWFjaCAodmFyIG1hdGNoIGluIG1hdGNoZXMuQ2FzdDxNYXRjaD4oKSkgewoJCQlDb25zb2xlLldyaXRlTGluZShzdHJpbmcuRm9ybWF0KCJ7e1wiezB9XCIsIFwiezF9XCJ9fSIsIG1hdGNoLkdyb3Vwc1syXS5WYWx1ZSwgbWF0Y2guR3JvdXBzWzFdLlZhbHVlKSk7CgkJfQoJfQp9