Брать строку с ключевым словом

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8
Подскажите, как сделать чтобы из таблицы xls или списка брались только 10 строк содержащих ключевое слово (например из переменной)?

Например список:
Красный закат
Зеленая трава
Красное море
А у меня ключевое слово КРАСНЫЙ:
Нужно чтобы взялись только 2 строки содержащие слово красный.

Спасибо.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
Операции со списком >Удалить строки - Удалить элементы не содержащие текст - Красный
Так остануться только нужные строки.
 
Последнее редактирование:
  • Спасибо
Реакции: dmasta

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 408
Благодарностей
314
Баллы
83

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 408
Благодарностей
314
Баллы
83
Сорри вот так.
 

Вложения

  • Спасибо
Реакции: dmasta

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 408
Благодарностей
314
Баллы
83
  • Спасибо
Реакции: dmasta

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8
В общем этот метод чувствителен к регистру написания слова, например он удаляет "Красный", если задано не удалять "красный" и не обращает внимания на частичное вхождение, если есть строка красный октябрь, он ее удалит.
Я так понимаю нужно пользоваться регулярными выражениями?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
В общем этот метод чувствителен к регистру написания слова, например он удаляет "Красный", если задано не удалять "красный" и не обращает внимания на частичное вхождение, если есть строка красный октябрь, он ее удалит.
Я так понимаю нужно пользоваться регулярными выражениями?
Да, тогда лучше удалять по регулярке
 
  • Спасибо
Реакции: dmasta

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43
Перед вашим значением ставите (?i) что включает нечувствительность выражения к регистру символов.
(?-i) - выключает.
Вдруг пригодится :bu:
 
  • Спасибо
Реакции: dmasta и VladZen

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
  • Спасибо
Реакции: dmasta

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43
Если вы имеете ввиду: Чтобы регулярное выражение "красный" не нашел так же и слово, к примеру, "Прекрасный" то будет так: \bкрасный
Это обозначение границы \b - граница слова в данном случае.
Вдруг пригодится :bu:
 
  • Спасибо
Реакции: dmasta

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
Если вы имеете ввиду: Чтобы регулярное выражение "красный" не нашел так же и слово, к примеру, "Прекрасный" то будет так: (?i)\bкрасный
Это обозначение границы \b - граница слова в данном случае.
Вдруг пригодится :bu:
имел ввиду, чтобы не удалял "красный октябрь" при том что задано слово красный. это будет так примерно - (?i)\bкрасный\s\w+
 
  • Спасибо
Реакции: dmasta и Solus

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8
имел ввиду, чтобы не удалял "красный октябрь" при том что задано слово красный. это будет так примерно - (?i)\bкрасный\s\w+
Поставил (?i) теперь действительно отключилась чувствительность к регистру, "Красный" и "красный" остаются. Остается и "Красный октябрь".
Но если ищу "красный октябрь", то удаляются "октябрь красный" и "красный сентябрь", "зеленый октябрь"
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
имел ввиду, чтобы не удалял "красный октябрь" при том что задано слово красный. это будет так примерно - (?i)\bкрасный\s\w+
Ну так оно же вроди как и так не должно удалять "красный октябрь" при том что задано слово красный?? Что то вы тут запутались видимо )

Но если ищу "красный октябрь", то удаляются "октябрь красный" и "красный сентябрь", "зеленый октябрь"
Ну так красный октябрь как бы совсем не равен "октябрь красный" и "красный сентябрь", "зеленый октябрь"...
Если нужно, чтобы оставались и те записи, установите Удалять строки, не соответствующие регулярному выражению, а в значения пропишите красный|октябрь
 

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8
Ну так оно же вроди как и так не должно удалять "красный октябрь" при том что задано слово красный?? Что то вы тут запутались видимо )


Ну так красный октябрь как бы совсем не равен "октябрь красный" и "красный сентябрь", "зеленый октябрь"...
Если нужно, чтобы оставались и те записи, установите Удалять строки, не соответствующие регулярному выражению, а в значения пропишите красный|октябрь
А если я беру эти данные построчно из списка, а одно ключевое "слово" может состоять из нескольких слов.
Грубо говоря нужен функционал подобный оператору "!" в яндексе.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
А если я беру эти данные построчно из списка, а одно ключевое "слово" может состоять из нескольких слов.
Грубо говоря нужен функционал подобный оператору "!" в яндексе.
красный|октябрь
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
У меня вот такая регулярка удаляет все, что нужно(см. приложенный шаблон):
Код:
(?i)красный.*
 

Вложения

  • Спасибо
Реакции: dmasta

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8
У меня вот такая регулярка удаляет все, что нужно(см. приложенный шаблон):
Код:
(?i)красный.*
Спасибо, вроде то что нужно. Но если там не одно слово а больше, то он все удаляет.:(
То есть если мы задаем удалить все строки не соответствующие: (?i)Красная москва*
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
Спасибо, вроде то что нужно. Но если там не одно слово а больше, то он все удаляет.:(
То есть если мы задаем удалить все строки не соответствующие: (?i)Красная москва*
 

Вложения

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Подскажите, как сделать чтобы из таблицы xls или списка брались только 10 строк содержащих ключевое слово (например из переменной)?

Например список:
Красный закат
Зеленая трава
Красное море
А у меня ключевое слово КРАСНЫЙ:
Нужно чтобы взялись только 2 строки содержащие слово красный.

Спасибо.
Ключевое слово "КРАСНЫЙ", берёшь первую букву от ключевого слова "К"
C#:
var list = project.Lists["SourceList"];
string[] teams = {"Красный закат", "Зеленая трава", "Красное море", "Красивый закат"};
var selectedTeams = from t in teams
                    where t.ToUpper().StartsWith("К") //фильтрация по критерию
                    orderby t
                    select t;
foreach (string s in selectedTeams)
    list.Add(s);
ответ: Всё кроме зелённой травы
 

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8
И еще вопросик маленький, как учитывать только буквы и цифры, отсекая знаки типа :?""№ ? Например, при поиске "Красная: Москва", удаляются все кроме "красная москва"?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
\w+ оставляет только буквы и цифры
 

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
Вот так если - (?i){-Variable.iskl-}\w+
 

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113

dmasta

Пользователь
Регистрация
03.11.2015
Сообщения
38
Благодарностей
1
Баллы
8
Есть 1 список в нем:
Красная москва ночью
красная москва горит
красная заря
зеленая заря
В этом списке должны остаться только те слова, что совпадают со словом из 2 списка:
красная москва
красная: москва
Красная москва

На данный момент, если в списке 2 попадается слово с ":", то в списке 1 ничего не остается, т.к они удаляются, потому что не находятся слова с ":". Хочу чтобы слова из 2 списка искались без ":". Как то так.
 

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