[REGEXP] Как найти значение из списка

Manless

Client
Регистрация
09.01.2014
Сообщения
186
Благодарностей
33
Баллы
28
Вопрос заключается в том, чтобы взять единственное значение из списка.
На данный момент пользуюсь костылем, а именно помещаю в список переменные в скобках типа:
(123)
(123 123)
(123 123 123)
Но хотелось бы проще.

Несколько примеров приведу того, как хотелось бы чтобы работало выражение regexp:

1) Входные данные
переменная:
123

список:
123
123 123
123 123 123

Результат, который должен получить:
123

2) Входные данные:
переменная: 123 123

список:
123
123 123
123 123 123

Результат, который должен получить:
123 123

3) Входные данные:
переменная: 1

список:
123
123 123
123 123 123

Результат, который должен получить:
пусто
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
  • Спасибо
Реакции: Manless

Manless

Client
Регистрация
09.01.2014
Сообщения
186
Благодарностей
33
Баллы
28
Ребят, помогите сделать точный поиск по списку, а не по частичному вхождению

Вот этот код ищет совпадение по частичному вхождению
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["listSearchTextContains"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(textContains))
            return "yes";
    }
}
// если ничего не нашли возвращаем "no"
return "no";
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["listSearchTextContains"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str==textContains)
            return "yes";
    }
}
// если ничего не нашли возвращаем "no"
return "no";
 
  • Спасибо
Реакции: Malchishka и Manless

Manless

Client
Регистрация
09.01.2014
Сообщения
186
Благодарностей
33
Баллы
28
Решение подсказал wizard
Код:
(?<=(^|\n|\r))123(?=($|\n|\r))
 

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