Множество условий Contains

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 952
Благодарностей
4 376
Баллы
113
Странно, но никак не хочет правильно работать конструкция из нескольких условий.
Имеются текстовые посты и мне нужно работать только с теми которые НЕ ИМЕЮТ любое из заданных слов.
PHP:
string att = he.InnerText;
if (!att.Contains("text1") && !att.Contains("text2") && !att.Contains("text3")) {
Нужные мне посты не имеют в текстовке заданных кусков, но, тем не менее, не проходят по условию.
Менял && на ||, обрамлял скобками - бесполезно. Что ещё можно попробовать и в чем может быть ошибка?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 446
Благодарностей
3 351
Баллы
113

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 952
Благодарностей
4 376
Баллы
113

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 811
Баллы
113
Может всё-таки проблема в текстовке и\или тексте который в этой текстовке ищется?
Набросал кусок кода, отработал как и ожидалось (конкретно в этом коде в лог выведется "good")
C#:
string att = "Hello, World!";

if (!att.Contains("peace") && !att.Contains("heaven") && !att.Contains("hello"))
{
    project.SendInfoToLog("good");
}
else
{
    project.SendErrorToLog("bad");
}
Можно пример текстовки и того, что в ней ищется?
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 952
Благодарностей
4 376
Баллы
113
Может всё-таки проблема в текстовке и\или тексте который в этой текстовке ищется?
Скорее всего.
Можно пример текстовки и того, что в ней ищется?
В том то всё и дело, что это сложно сделать.
По кускам если текст делить, то всё нормально. Но в целом при парсинге полная ерунда происходит.
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Код:
string att = "Hello, World!";

string[] black = { "world!", "hello", "2hello"};

bool b = black.All(x => att.ToLower().Contains(x));//ture если совпадения по всем словам из блеклиста
project.SendInfoToLog(b.ToString());

bool b2 = black.Any(x => att.ToLower().Contains(x)); //true если хоть одно совпадение из блеклиста
project.SendInfoToLog(b2.ToString());
 

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