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

Zheka84

Client
Joined
Oct 13, 2018
Messages
161
Reaction score
25
Points
28
Здравствуйте, поиском по форуму воспользовался, но ничего не нашёл.
Собственно вопрос: как взять точное совпадение из списка?
К примеру нужно проверить наличие числа 1000 в списке, но при этом в списке есть число 51000, оно берёт его, через функцию "получить строку/содержит текст". Но мне нужно знать есть ли именно число 1000 в списке.
Спасибо большое.
 

Mikhail B.

Client
Joined
Dec 23, 2014
Messages
14,453
Reaction score
5,472
Points
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с Mikhail B. какие-либо сделки.

Теоретически
Code:
^1000$
Но в списке это может не работать, т.к. там переносы строк. Где-то было решение, если никто раньше меня не ответит скину.
 

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,648
Points
113

Zheka84

Client
Joined
Oct 13, 2018
Messages
161
Reaction score
25
Points
28

bad robot

Client
Joined
Mar 7, 2011
Messages
209
Reaction score
56
Points
28
со скобками будет косячить
 

Rk61

Client
Joined
Feb 3, 2015
Messages
114
Reaction score
126
Points
43
C#:
var list = project.Lists["Список"];
string id = project.Variables["id"].Value;

if(list.Contains(id))
{
    //return "true";
}
else
{
    //return "false";
}
 
  • Thank you
Reactions: Zheka84

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,798
Reaction score
2,483
Points
113
Code:
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 совпадение");
 
  • Thank you
Reactions: Zheka84

anarbus

Client
Joined
Jul 16, 2019
Messages
609
Reaction score
19
Points
18
Теоретически
Code:
^1000$
Но в списке это может не работать, т.к. там переносы строк. Где-то было решение, если никто раньше меня не ответит скину.
Было бы не плохо в обновлениях для Zenno добавить "CheckBox" Точное совпадение
 
  • Thank you
Reactions: Devostator

Mikhail B.

Client
Joined
Dec 23, 2014
Messages
14,453
Reaction score
5,472
Points
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с Mikhail B. какие-либо сделки.

Было бы не плохо в обновлениях для Zenno добавить "CheckBox" Точное совпадение
Зачем. Если простейшая регулярка делает это без проблем. Но если хотите в раздел предложений пишите.
 
  • Thank you
Reactions: one

mrboogie

Client
Joined
May 28, 2019
Messages
40
Reaction score
18
Points
8
Зачем. Если простейшая регулярка делает это без проблем. Но если хотите в раздел предложений пишите.
Не всегда приходится работать только с точной переменной иногда это разный текст либо число
 

Podric

Client
Joined
Aug 16, 2019
Messages
76
Reaction score
6
Points
8
Зачем. Если простейшая регулярка делает это без проблем. Но если хотите в раздел предложений пишите.
не всегда.если мне нужно взять из списка "Вася спит" а в списке есть "Вася спит всегда" тоберетса второй вариант
 

Phoenix78

Client
Read only
Joined
Nov 6, 2018
Messages
11,789
Reaction score
5,725
Points
113
не всегда.если мне нужно взять из списка "Вася спит" а в списке есть "Вася спит всегда" тоберетса второй вариант
смотря как регулярку сделаешь.
 

Podric

Client
Joined
Aug 16, 2019
Messages
76
Reaction score
6
Points
8

Phoenix78

Client
Read only
Joined
Nov 6, 2018
Messages
11,789
Reaction score
5,725
Points
113
если можно то поясни)
если регулярку сделаешь для точного совпадения полной строки, то и будет брать только полное совпадение.
а "Вася спит" в "Вася спит всегда" это не точное совпадение, а частичное.
 

Podric

Client
Joined
Aug 16, 2019
Messages
76
Reaction score
6
Points
8
если регулярку сделаешь для точного совпадения полной строки, то и будет брать только полное совпадение.
а "Вася спит" в "Вася спит всегда" это не точное совпадение, а частичное.
а как взять точное совпадения полной строки?)
 

Phoenix78

Client
Read only
Joined
Nov 6, 2018
Messages
11,789
Reaction score
5,725
Points
113
а как взять точное совпадения полной строки?)
я не очень в регулярках, ну вот по бырому накидал. Вообще на форуме часто разные регулярки пролетают, поищи под свои запросы.

75549
 

Mikhail B.

Client
Joined
Dec 23, 2014
Messages
14,453
Reaction score
5,472
Points
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с Mikhail B. какие-либо сделки.

а как взять точное совпадения полной строки?)
В уроках Ростоникса про это рассказыаплось. Прогуливали?))
 

Podric

Client
Joined
Aug 16, 2019
Messages
76
Reaction score
6
Points
8
а
В уроках Ростоникса про это рассказыаплось. Прогуливали?))
^Вася спит $ - подошло
 
  • Thank you
Reactions: Mikhail B.

sociohacker

Client
Joined
Oct 8, 2018
Messages
91
Reaction score
33
Points
18
Господа, подскажите, а как искать по точному совпадению в таблице, а не в списке?
Регулярка с ^$ - не работает.
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
20,936
Reaction score
9,330
Points
113
Господа, подскажите, а как искать по точному совпадению в таблице, а не в списке?
Регулярка с ^$ - не работает.
Попробуйте такую использовать: \bслово\b
 

sociohacker

Client
Joined
Oct 8, 2018
Messages
91
Reaction score
33
Points
18
  • Thank you
Reactions: Sergodjan

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
20,936
Reaction score
9,330
Points
113
  • Thank you
Reactions: sociohacker

nik-n

Client
Joined
Nov 5, 2016
Messages
243
Reaction score
20
Points
18
А просто в переменной лежит если HTML? Как найти короткое слово с точным вхождением?
А тут вообще не просто, еще могут быть варианты когда текст заканчивается точкой, типа: "туда сюда по жд." ил если слово "железная дорога (жд)" будет в скобках, и пр.
Как найти только слово целиком "жд", и не находить слов типа "ждать", "одежда" и пр.?
Типа - найти "жд", но что бы вокруг этого слова не было больше никаких букв (числа, пробелы, спецсимволы можно).

103203


Выполнение действия TextProcessing Ничего не найдено при поиске текста регулярным выражением
 
Last edited:

viol2021

Client
Joined
Jan 12, 2021
Messages
482
Reaction score
181
Points
43
Здравствуйте, поиском по форуму воспользовался, но ничего не нашёл.
Собственно вопрос: как взять точное совпадение из списка?
К примеру нужно проверить наличие числа 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("Нет такой строки в списке");
 

nik-n

Client
Joined
Nov 5, 2016
Messages
243
Reaction score
20
Points
18
А просто в переменной лежит если HTML? Как найти короткое слово с точным вхождением?
А тут вообще не просто, еще могут быть варианты когда текст заканчивается точкой, типа: "туда сюда по жд." ил если слово "железная дорога (жд)" будет в скобках, и пр.
Как найти только слово целиком "жд", и не находить слов типа "ждать", "одежда" и пр.?
Типа - найти "жд", но что бы вокруг этого слова не было больше никаких букв (числа, пробелы, спецсимволы можно).

View attachment 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, чтобы разделить текст на отдельные слова, и затем проходит по каждому слову, чтобы проверить, является ли оно целым словом "жд". В результате должны быть выведены все три целых слова "жд" из примера текста.

и все работает.... я в акуе...
 

viol2021

Client
Joined
Jan 12, 2021
Messages
482
Reaction score
181
Points
43
спасибо 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, чтобы разделить текст на отдельные слова, и затем проходит по каждому слову, чтобы проверить, является ли оно целым словом "жд". В результате должны быть выведены все три целых слова "жд" из примера текста.

и все работает.... я в акуе...
А если будет не жд, а Жд. Не найдёт)))
 

nik-n

Client
Joined
Nov 5, 2016
Messages
243
Reaction score
20
Points
18
А если будет не жд, а Жд. Не найдёт)))
почему? там же ToLower() применяется.
 

mig-z

Client
Joined
Dec 5, 2014
Messages
309
Reaction score
71
Points
28
$^ не находит в конструкторе регулярных выражений. Версия 7.7.4.0.
116498
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
20,936
Reaction score
9,330
Points
113
$^ не находит в конструкторе регулярных выражений. Версия 7.7.4.0.
View attachment 116498
В конструкторе и постере многострочный текст интерпретируется как одна строка со служебными символами (переводами строк), поэтому есть такая особенность. Именно к багам я бы не относил, просто нужно учитывать.

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

116499
 
Last edited:
  • Thank you
Reactions: mig-z and Ribas

Ostap1992

Client
Joined
Feb 26, 2020
Messages
46
Reaction score
5
Points
8
В конструкторе и постере многострочный текст интерпретируется как одна строка со служебными символами (переводами строк), поэтому есть такая особенность. Именно к багам я бы не относил, просто нужно учитывать.

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

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

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)