- Регистрация
 - 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
 




