Пришлось по работе парсить огромное количество всяческих текстов.
Надоел оверхед типа:
Regex r = new Regex(pattern,options);
MatchCollection mc = r.Matches(source);
foreach (Match m in mc)
{
T newObject = new T();
newObject.Property1 = m.Groups[groupName1].Value;
newObject.Property2 = m.Groups[groupName2].Value;
}
написал библиотеку, при помощи которой я атрибутами задаю патерн для РВ на класс и на каждое свойство атрибут — GroupName.
Типа:
[RegexAttributes("pattern", System.Text.RegularExpressions.RegexOptions.Singleline)]
public class User
{
[RegexPropertyAttribute("Name")]
public String Name { get; set; }
[RegexPropertyAttribute("SecondName")]
public String SecondName { get; set; }
[RegexPropertyAttribute("Age")]
public String Age { get; set; }
}
после чего, парсинг сводится к:
DataContext<User> dataContext = new DataContext<User>();
List<User> users = dataContext.GetList(source);
не учтены еще в Group'ах Capture — это предполагается сделать так:
если проперти — это список строк, тогда перебирать у групы каптуры... ну както так.
Вот хочу поинтересоваться — имеет ли какую ценность моя поделка? Не в денежном эквиваленте, а в качестве опубликовать на codeplex'e людям на радость!
Да, опубликуй. Хуже точно не будет.
Здравствуйте, adontz, Вы писали:
A>Да, опубликуй. Хуже точно не будет.
тут
Критикуйте
S>тут
S>Критикуйте
не люблю атрибуты, лучше использовать подход вроде
такого
Здравствуйте, LF, Вы писали:
S>>тут
S>>Критикуйте
LF>не люблю атрибуты, лучше использовать подход вроде такого
Хм... спасибо за камент. Я подумаю как это прикрутить к своей библиотеке
Здравствуйте, skodnik, Вы писали:
S>Пришлось по работе парсить огромное количество всяческих текстов.
S>Надоел оверхед типа:
Не рекламы ради, а лишь сравнения для —
regex matchАвтор: _nn_
Дата: 26.04.10
.
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, skodnik, Вы писали:
S>>Пришлось по работе парсить огромное количество всяческих текстов.
S>>Надоел оверхед типа:
H>Не рекламы ради, а лишь сравнения для — regex matchАвтор: _nn_
Дата: 26.04.10
.
Долго курил... потом дошло — это ж немерл!