Проверка переменой на определеное ключевое слово!

  • Автор темы Автор темы sh00r00p
  • Дата начала Дата начала

sh00r00p

Новичок
Регистрация
19.08.2015
Сообщения
5
Реакции
0
Баллы
1
Подскажите пожалуйста как можно реализовать подобное?

Допустим есть переменная "title" в ней текст "монтаж подвесных потолков армстронг" (и он будет меняться при каждом новом цикле)

Хочу сделать проверку данной переменной на сотни ключевых слов, например:

потолок
потолк
ремонт
сантехник
ну и тд.

и чтобы в зависимости от того с каким ключевым словом было совпадение, переход шел на определеный "Spyntax", т.е. у каждого ключевого слова будет свой "spyntax"
а если не нашел ни одного совпадения, то шел на дефолтный "spyntax"

Понимаю что лучше всего бы к моей задаче подошел экшен "shift" но он проверяет на целое выражение т.е. 'потолок' == 'потолок', а нужно чтобы выполнялась именно проверка на совпадение в тексте.
 
Подскажите пожалуйста как можно реализовать подобное?

Допустим есть переменная "title" в ней текст "монтаж подвесных потолков армстронг" (и он будет меняться при каждом новом цикле)

Хочу сделать проверку данной переменной на сотни ключевых слов, например:

потолок
потолк
ремонт
сантехник
ну и тд.

и чтобы в зависимости от того с каким ключевым словом было совпадение, переход шел на определеный "Spyntax", т.е. у каждого ключевого слова будет свой "spyntax"
а если не нашел ни одного совпадения, то шел на дефолтный "spyntax"

Понимаю что лучше всего бы к моей задаче подошел экшен "shift" но он проверяет на целое выражение т.е. 'потолок' == 'потолок', а нужно чтобы выполнялась именно проверка на совпадение в тексте.
в цикле берем строку из списка ключевых слов и проверяем ее вхождение с помощью экшена Обработка текста -> Regex, далее IF с проверкой на пустоту (если не пусто, то идем на спец-спинтакс)..
цикл можно организовать со счетчиком - брать проверочный ключ по номеру строки..
как только проверили весь список и не нашлось вхождений - идем на дефолтный спинтакс..
 
Если ключевых слов будет не сильно много, то можно сделать следующим образом:
1. Объединяем список с ключами через свой разделитель - |
2. Обработка текста - Regex - Текст для обработки - вставляем свою фразу, регулярка - вставляем переменную, в которой объединённые ключи.
3. Проверяем, попало ли что то в переменную. Если да - есть совпадение, обрабатываем как нужно. Нет - соответственно и совпадений нет.
 
в цикле берем строку из списка ключевых слов и проверяем ее вхождение с помощью экшена Обработка текста -> Regex, далее IF с проверкой на пустоту (если не пусто, то идем на спец-спинтакс)..
цикл можно организовать со счетчиком - брать проверочный ключ по номеру строки..
как только проверили весь список и не нашлось вхождений - идем на дефолтный спинтакс..
Этот вариант лучше, если не знаешь наверняка сколько проверок будет.
 
Премного уважаемые знатоки C#, подскажите как будет выглядеть код вот этого
Безымянный.png
на C#.
Спасибо.
 
Премного уважаемые знатоки C#, подскажите как будет выглядеть код вот этого
Посмотреть вложение 30137
на C#.
Спасибо.
Код:
Развернуть Свернуть Копировать
string pattern = @"что парсить (регулярка)";
string text = "откуда парсить";
Regex newReg = new Regex(pattern);
MatchCollection matches = newReg.Matches(text);
return matches[0];
 
  • Спасибо
Реакции: p-sergei и doc
C#:
Развернуть Свернуть Копировать
var response = project.Variables["Response"].Value;

if (response.Contains("Подтверждение пересылки с ящика"))
{
    //найдено, дальнейшие действия
}
else
{
    //не найдено, какие то действия, но else тут можно и не ставить
}
 
  • Спасибо
Реакции: Sergodjan и p-sergei
Код:
Развернуть Свернуть Копировать
string pattern = @"что парсить (регулярка)";
string text = "откуда парсить";
Regex newReg = new Regex(pattern);
MatchCollection matches = newReg.Matches(text);
return matches[0];
только ошибку выбьет, если не найдёт
 
  • Спасибо
Реакции: Sergodjan и p-sergei
  • string pattern = @"что парсить (регулярка)";
  • string text = "откуда парсить";
  • Regex newReg = new Regex(pattern);
  • MatchCollection matches = newReg.Matches(text);
  • return matches[0];
А как получить не первое значение, а общее число найденных совпадений в коллекции?
 
Последнее редактирование:
  • Спасибо
Реакции: luserz
  • Спасибо
Реакции: Sergodjan

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