Могу ошибаться в терминах, но проблема такая.
Есть у меня парсер сайта, написал на C#.
Делаю более гибким, для этого запросил патерны рег.выр. в БД.
Но Regex перестал работать с патернами считанными с БД.
делаю проверку:
string ws = ВзятьИзБД();/*беру с помощью DbDataReader, ни как дополнительно не обрабатываю*/
string ws2 = "<div class=\" ля ля тополя

s*</div>\\s*</div>";
if(ws != ws2) throw . . .
и действительно они не равны, в варианте считанном из БД появилось слеширование!
что в моей голове не так? как этого избежать? гугл и MSDN не помогли!
Здравствуйте, 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 не помогли!
А база какая?
Здравствуйте, 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])