string из БД в качестве патерна Regex
От: sukhov  
Дата: 23.04.08 14:33
Оценка:
Могу ошибаться в терминах, но проблема такая.
Есть у меня парсер сайта, написал на C#.
Делаю более гибким, для этого запросил патерны рег.выр. в БД.
Но Regex перестал работать с патернами считанными с БД.

делаю проверку:
string ws = ВзятьИзБД();/*беру с помощью DbDataReader, ни как дополнительно не обрабатываю*/
string ws2 = "<div class=\" ля ля тополя s*</div>\\s*</div>";
if(ws != ws2) throw . . .

и действительно они не равны, в варианте считанном из БД появилось слеширование!

что в моей голове не так? как этого избежать? гугл и MSDN не помогли!
Re: string из БД в качестве патерна Regex
От: anton_t Россия  
Дата: 24.04.08 10:53
Оценка:
Здравствуйте, sukhov, Вы писали:

S>Могу ошибаться в терминах, но проблема такая.

S>Есть у меня парсер сайта, написал на C#.
S>Делаю более гибким, для этого запросил патерны рег.выр. в БД.
S>Но Regex перестал работать с патернами считанными с БД.

S>делаю проверку:

S>string ws = ВзятьИзБД();/*беру с помощью DbDataReader, ни как дополнительно не обрабатываю*/
S>string ws2 = "<div class=\" ля ля тополя s*</div>\\s*</div>";
S>if(ws != ws2) throw . . .

S>и действительно они не равны, в варианте считанном из БД появилось слеширование!


S>что в моей голове не так? как этого избежать? гугл и MSDN не помогли!


А база какая?
Re[2]: string из БД в качестве патерна Regex
От: sukhov  
Дата: 24.04.08 11:18
Оценка:
Здравствуйте, anton_t, Вы писали:

_>А база какая?


Access
Re[3]: string из БД в качестве патерна Regex
От: anton_t Россия  
Дата: 25.04.08 04:34
Оценка:
Здравствуйте, sukhov, Вы писали:

S>Здравствуйте, anton_t, Вы писали:


_>>А база какая?


S>Access


Видимо дело в методе ВзятьИзБД. Как он выглядит?
Re[4]: string из БД в качестве патерна Regex
От: sukhov  
Дата: 25.04.08 11:32
Оценка:
Здравствуйте, anton_t, Вы писали:

_>Здравствуйте, sukhov, Вы писали:


S>>Здравствуйте, anton_t, Вы писали:


_>>>А база какая?


S>>Access


_>Видимо дело в методе ВзятьИзБД. Как он выглядит?


Вообще ни чего хитрого:

        protected OdbcConnection sqlCon;
        protected OdbcCommand com;

        ....

        public ArrayList LoadArray(string q)
        {
            try
            {
                com.CommandType = CommandType.Text;
                com.CommandText = q;
                DbDataReader reader = com.ExecuteReader();
                ArrayList ret = new ArrayList();

                while (reader.Read())
                    ret.Add(reader[0]); 

                reader.Close();
                return ret; 
            }
            catch (DbException db)
            {
                Eng.Logs.Excep(" .....
            }
       }


Т.е. в даном случае на выходе получим массив строк (патернами).
Проверяю в дебаге в риадере уже строки слешированные (reader[0])
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.