- Регистрация
- 29.11.2015
- Сообщения
- 10
- Благодарностей
- 0
- Баллы
- 1
Доброго времени суток! Есть текстовый список строки которого имеют следующий вид:
^(?i)(.*)(регулярка).{0,}$
{ответ}
^(?i)(.*)(регулярка).{0,}$
{ответ}
и т.д.
C# снипет должен по очереди брать каждую строку списка и определять соответствует ли она регулярному выражению. Если соответствует, то в лог должно пойти "good string", если нет - "bad string" и дальше брать следующую строку.
Вот сам код:
Но возникает проблема: когда снипет берет первую строку, ни одно из условий не выполняется, снипет просто возвращает назад пустую строку, хотя строка списка не пустая и имеет формат регулярки.
Если убрать цикл и использовать такой код:
то конструкция отрабатывает правильно и значение строки возвращается верно. Помогите пожалуйста: что я делаю не так? Заранее спасибо за помощь)
Сам проект:
^(?i)(.*)(регулярка).{0,}$
{ответ}
^(?i)(.*)(регулярка).{0,}$
{ответ}
и т.д.
C# снипет должен по очереди брать каждую строку списка и определять соответствует ли она регулярному выражению. Если соответствует, то в лог должно пойти "good string", если нет - "bad string" и дальше брать следующую строку.
Вот сам код:
Код:
var Core = project.Lists["core"];
string str = String.Empty;
System.Text.RegularExpressions.Regex rgx = new System.Text.RegularExpressions.Regex(@"(?<=\^).*(?=\$)");
lock(SyncObjects.ListSyncer)
{
for (int i=0; i==Core.Count; i++)
{
str = Core[i];
if (rgx.IsMatch(str))
{
project.SendInfoToLog("good string");
}
else
{
project.SendInfoToLog("bad string");
}
}
}
return str;
Если убрать цикл и использовать такой код:
Код:
int StringCounter = 0;
var Core = project.Lists["core"];
var str = String.Empty;
System.Text.RegularExpressions.Regex rgx = new System.Text.RegularExpressions.Regex(@"(?<=\^).*(?=\$)");
lock(SyncObjects.ListSyncer)
str = Core[StringCounter];
if (rgx.IsMatch(str))
{
project.SendInfoToLog("good string");
}
else
{
project.SendInfoToLog("bad string");
}
return str;
Сам проект:
Вложения
-
10,3 КБ Просмотры: 4