Как взять точное совпадение из списка

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

Zheka84

Client
Регистрация
13.10.2018
Сообщения
164
Реакции
25
Баллы
28
Здравствуйте, поиском по форуму воспользовался, но ничего не нашёл.
Собственно вопрос: как взять точное совпадение из списка?
К примеру нужно проверить наличие числа 1000 в списке, но при этом в списке есть число 51000, оно берёт его, через функцию "получить строку/содержит текст". Но мне нужно знать есть ли именно число 1000 в списке.
Спасибо большое.
 
Теоретически
Код:
Развернуть Свернуть Копировать
^1000$
Но в списке это может не работать, т.к. там переносы строк. Где-то было решение, если никто раньше меня не ответит скину.
 
C#:
Развернуть Свернуть Копировать
var list = project.Lists["Список"];
string id = project.Variables["id"].Value;

if(list.Contains(id))
{
    //return "true";
}
else
{
    //return "false";
}
 
  • Спасибо
Реакции: Zheka84
Код:
Развернуть Свернуть Копировать
List<string> list = new List<string>();
list.Add("100");
list.Add("1000");
list.Add("510000");
list.Add("1000");
list.Add(" 1000");

string id = "1000";
// Строгое совпадение
project.SendInfoToLog("Строгое совпадение");
project.SendInfoToLog(list.Contains(id) ? "Да" : "Нет");

// Строгое совпадение
project.SendInfoToLog("Строгое совпадение + узнаем сколько");
foreach(string line in list) if(line == id) project.SendInfoToLog("+1 совпадение");

// НЕ Строгое совпадение
project.SendInfoToLog("НЕ Строгое совпадение + узнаем сколько");
foreach(string line in list) if(line.Contains(id)) project.SendInfoToLog("+1 совпадение");
 
  • Спасибо
Реакции: Zheka84
Теоретически
Код:
Развернуть Свернуть Копировать
^1000$
Но в списке это может не работать, т.к. там переносы строк. Где-то было решение, если никто раньше меня не ответит скину.
Было бы не плохо в обновлениях для Zenno добавить "CheckBox" Точное совпадение
 
  • Спасибо
Реакции: Devostator
Было бы не плохо в обновлениях для Zenno добавить "CheckBox" Точное совпадение
Зачем. Если простейшая регулярка делает это без проблем. Но если хотите в раздел предложений пишите.
 
  • Спасибо
Реакции: one
Зачем. Если простейшая регулярка делает это без проблем. Но если хотите в раздел предложений пишите.
Не всегда приходится работать только с точной переменной иногда это разный текст либо число
 
Зачем. Если простейшая регулярка делает это без проблем. Но если хотите в раздел предложений пишите.
не всегда.если мне нужно взять из списка "Вася спит" а в списке есть "Вася спит всегда" тоберетса второй вариант
 
если можно то поясни)
если регулярку сделаешь для точного совпадения полной строки, то и будет брать только полное совпадение.
а "Вася спит" в "Вася спит всегда" это не точное совпадение, а частичное.
 
если регулярку сделаешь для точного совпадения полной строки, то и будет брать только полное совпадение.
а "Вася спит" в "Вася спит всегда" это не точное совпадение, а частичное.
а как взять точное совпадения полной строки?)
 
а как взять точное совпадения полной строки?)
я не очень в регулярках, ну вот по бырому накидал. Вообще на форуме часто разные регулярки пролетают, поищи под свои запросы.

75549
 
Господа, подскажите, а как искать по точному совпадению в таблице, а не в списке?
Регулярка с ^$ - не работает.
 
  • Спасибо
Реакции: sociohacker
А просто в переменной лежит если HTML? Как найти короткое слово с точным вхождением?
А тут вообще не просто, еще могут быть варианты когда текст заканчивается точкой, типа: "туда сюда по жд." ил если слово "железная дорога (жд)" будет в скобках, и пр.
Как найти только слово целиком "жд", и не находить слов типа "ждать", "одежда" и пр.?
Типа - найти "жд", но что бы вокруг этого слова не было больше никаких букв (числа, пробелы, спецсимволы можно).

103203


Выполнение действия TextProcessing Ничего не найдено при поиске текста регулярным выражением
 
Последнее редактирование:
Здравствуйте, поиском по форуму воспользовался, но ничего не нашёл.
Собственно вопрос: как взять точное совпадение из списка?
К примеру нужно проверить наличие числа 1000 в списке, но при этом в списке есть число 51000, оно берёт его, через функцию "получить строку/содержит текст". Но мне нужно знать есть ли именно число 1000 в списке.
Спасибо большое.
C#:
Развернуть Свернуть Копировать
 List<string> list = new List<string>()
            {
                
                "51000",
                "9000",
                "10000",
                "1000"
            };

            string poisk = "10000";

            string result = list.FirstOrDefault(x => x.Equals(poisk));

            if(result != null)
                project.SendInfoToLog(result);

            else
                project.SendInfoToLog("Нет такой строки в списке");
 
А просто в переменной лежит если HTML? Как найти короткое слово с точным вхождением?
А тут вообще не просто, еще могут быть варианты когда текст заканчивается точкой, типа: "туда сюда по жд." ил если слово "железная дорога (жд)" будет в скобках, и пр.
Как найти только слово целиком "жд", и не находить слов типа "ждать", "одежда" и пр.?
Типа - найти "жд", но что бы вокруг этого слова не было больше никаких букв (числа, пробелы, спецсимволы можно).

Посмотреть вложение 103203

Выполнение действия TextProcessing Ничего не найдено при поиске текста регулярным выражением
спасибо chatGpt, в первую очередь вопросы буду задавать теперь только там )
подсказала как сделать на C#
Задал ей вопрос:
мне нужен c# код который будет находить в тексте только целые слова "жд" пример текста: "жд билеты на жд одежда ждать жд."

Говорит:
Вот код, который учитывает только целые слова "жд":
C#:
Развернуть Свернуть Копировать
string text = "жд билеты на жд одежда ждать жд.";
string[] words = text.Split(new char[] { ' ', '.', ',', '!', '?', ':', ';', '(', ')' }, StringSplitOptions.RemoveEmptyEntries);

foreach (string word in words)
{
    if (word.ToLower() == "жд")
    {
        Console.WriteLine(word);
    }
}
и пояснила:
Этот код использует метод Split, чтобы разделить текст на отдельные слова, и затем проходит по каждому слову, чтобы проверить, является ли оно целым словом "жд". В результате должны быть выведены все три целых слова "жд" из примера текста.

и все работает.... я в акуе...
 
спасибо chatGpt, в первую очередь вопросы буду задавать теперь только там )
подсказала как сделать на C#
Задал ей вопрос:
мне нужен c# код который будет находить в тексте только целые слова "жд" пример текста: "жд билеты на жд одежда ждать жд."

Говорит:
Вот код, который учитывает только целые слова "жд":
C#:
Развернуть Свернуть Копировать
string text = "жд билеты на жд одежда ждать жд.";
string[] words = text.Split(new char[] { ' ', '.', ',', '!', '?', ':', ';', '(', ')' }, StringSplitOptions.RemoveEmptyEntries);

foreach (string word in words)
{
    if (word.ToLower() == "жд")
    {
        Console.WriteLine(word);
    }
}
и пояснила:
Этот код использует метод Split, чтобы разделить текст на отдельные слова, и затем проходит по каждому слову, чтобы проверить, является ли оно целым словом "жд". В результате должны быть выведены все три целых слова "жд" из примера текста.

и все работает.... я в акуе...
А если будет не жд, а Жд. Не найдёт)))
 
$^ не находит в конструкторе регулярных выражений. Версия 7.7.4.0.
116498
 
$^ не находит в конструкторе регулярных выражений. Версия 7.7.4.0.
Посмотреть вложение 116498

В конструкторе и постере многострочный текст интерпретируется как одна строка со служебными символами (переводами строк), поэтому есть такая особенность. Именно к багам я бы не относил, просто нужно учитывать.

Попробуйте использовать такую регулярку: ^text(?=\r?\n|$)

116499
 
Последнее редактирование:
  • Спасибо
Реакции: mig-z и Ribas
В конструкторе и постере многострочный текст интерпретируется как одна строка со служебными символами (переводами строк), поэтому есть такая особенность. Именно к багам я бы не относил, просто нужно учитывать.

Попробуйте использовать такую регулярку: ^text(?=\r?\n|$)

Посмотреть вложение 116499
а если вместо слово текст надо из переменной брать значение как быть ( и там значения слова всегда разное)
 

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