[SOLVED] Не могу разобраться с кодом с# Regex

grin-du

Client
Регистрация
09.10.2017
Сообщения
96
Благодарностей
46
Баллы
18
Код:
boot bad = false;
HtmlElementCollection elements = instance.ActiveTab.FindElementsByAttribute("span", "class", "button-pro", "regexp");
for (int j=0; j<elements.Count; j++)
{
    bad = false;
    var el = elements.GetByNumber(j).FindChildByAttribute("a","class","gs_result_i_t_name","text",0);
    string href = el.GetAttribute("href");
    var sourceList = project.Lists["Blacklist_to_add_friends"];
    lock (SyncObjects.ListSyncer)
    {
        for (int i=0; i < souceList.Count; i++)
        {
            var str = souceList;
            if (str.Conteins(href)) { bad = true; break;}
        }
    }
    if (!bad)
    {
        try {elements.GetByNumber(j).FindChildByAttribute("span","class","Добавить в друзья","text",0).RiseEvent("onechange","full");}
        catch (Exception) {};
    }
}
 

Вложения

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
ну так читай ошибки и правь, вот например первая

2018-01-25_204141.png


ты сам что ли слова придумывал ?? "Conteins"
в 13-ой строке ты что пытаешься получить лист в переменую и сравниваешь с url ?

P.S. а вообще ошибка начинается прям с первой строки
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
держи если лень было по ошибкам из лога исправить где даже строку выдаёт в которой ошибка
C#:
bool bad = false;
HtmlElementCollection elements = instance.ActiveTab.FindElementsByAttribute("span", "class", "button-pro", "regexp");
for (int j=0; j<elements.Count; j++)
{
    bad = false;
    var el = elements.GetByNumber(j).FindChildByAttribute("a","class","gs_result_i_t_name","text",0);
    string href = el.GetAttribute("href");
    var sourceList = project.Lists["Blacklist_to_add_friends"];
    lock (SyncObjects.ListSyncer)
    {
        for (int i=0; i < sourceList.Count; i++)
        {
            var str = sourceList[i];
            if (str.Contains(href))
            {
                bad = true;
                break;
            }
        }
    }
    if (!bad)
    {
        try
        {
            elements.GetByNumber(j).FindChildByAttribute("span","class","Добавить в друзья","text",0).RiseEvent("onechange","full");
        }
        catch (Exception) {};
    }
}
 
  • Спасибо
Реакции: grin-du

grin-du

Client
Регистрация
09.10.2017
Сообщения
96
Благодарностей
46
Баллы
18
держи если лень было по ошибкам из лога исправить где даже строку выдаёт в которой ошибка
C#:
bool bad = false;
HtmlElementCollection elements = instance.ActiveTab.FindElementsByAttribute("span", "class", "button-pro", "regexp");
for (int j=0; j<elements.Count; j++)
{
    bad = false;
    var el = elements.GetByNumber(j).FindChildByAttribute("a","class","gs_result_i_t_name","text",0);
    string href = el.GetAttribute("href");
    var sourceList = project.Lists["Blacklist_to_add_friends"];
    lock (SyncObjects.ListSyncer)
    {
        for (int i=0; i < sourceList.Count; i++)
        {
            var str = sourceList[i];
            if (str.Contains(href))
            {
                bad = true;
                break;
            }
        }
    }
    if (!bad)
    {
        try
        {
            elements.GetByNumber(j).FindChildByAttribute("span","class","Добавить в друзья","text",0).RiseEvent("onechange","full");
        }
        catch (Exception) {};
    }
}
держи если лень было по ошибкам из лога исправить где даже строку выдаёт в которой ошибка
C#:
bool bad = false;
HtmlElementCollection elements = instance.ActiveTab.FindElementsByAttribute("span", "class", "button-pro", "regexp");
for (int j=0; j<elements.Count; j++)
{
    bad = false;
    var el = elements.GetByNumber(j).FindChildByAttribute("a","class","gs_result_i_t_name","text",0);
    string href = el.GetAttribute("href");
    var sourceList = project.Lists["Blacklist_to_add_friends"];
    lock (SyncObjects.ListSyncer)
    {
        for (int i=0; i < sourceList.Count; i++)
        {
            var str = sourceList[i];
            if (str.Contains(href))
            {
                bad = true;
                break;
            }
        }
    }
    if (!bad)
    {
        try
        {
            elements.GetByNumber(j).FindChildByAttribute("span","class","Добавить в друзья","text",0).RiseEvent("onechange","full");
        }
        catch (Exception) {};
    }
}
Спасибо, просто запарился толком( А не подскажите в этом, тоже не могу догнать( Отдает 0, а через просто REGEX нормально парсит. Регулярку экранировал в коде, но и приложу нормальную для сравнения, может в ней замут(
Код:
var dom = instance.ActiveTab.DomText;
string regex = "(?<=<span\\ class=\"price-value\">)[\\w\\W]*(?=\\ \\ </span>\\ </div>)";
string str1 =  project.Variables["money"].Value;
var reg = new System.Text.RegularExpressions.Regex(regex,  System.Text.RegularExpressions.RegexOptions.None);
if(reg.Matches(str1).Count > 0)
    project.Variables["money"].Value = reg.Matches(str1)[0].ToString();
    return reg.Matches(str1).Count;
   
   
    //str1 = str1.Replace("&nbsp;","").ToString().Trim();
    //project.Variables["money"].Value = str1;


//string str1 = project.Variables["money"].Value;
//str1 = str1.Replace("&nbsp;","").ToString().Trim();
//project.Variables["money"].Value = str1;
И как писать на форум как вы, чтобы синтаксис с# посвечивался в поле)*?
 

СТЕПАН

Moderator
Регистрация
17.03.2013
Сообщения
951
Благодарностей
352
Баллы
63

Вложения

grin-du

Client
Регистрация
09.10.2017
Сообщения
96
Благодарностей
46
Баллы
18

Вложения

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 253
Благодарностей
5 849
Баллы
113
Пожалуйста в назавании темы отражайте суть проблемы
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)