помогите с регуляркой, как взять нужное слово без допов?

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113
где-то находил на форуме, но сейчас не могу найти.

есть таблица, в ней есть названия, нужно взять строки где содержится только это слово, а другие не брать

например имеем:
мороженное
мороженное
мороженное
холодное мороженное
холодное мороженное
холодное мороженное
говеное мороженное
говеное мороженное
говеное мороженное

надо взять только те строки где есть слово "мороженное"
другие строки брать не надо.

спасибо
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 453
Благодарностей
1 289
Баллы
113
где-то находил на форуме, но сейчас не могу найти.

есть таблица, в ней есть названия, нужно взять строки где содержится только это слово, а другие не брать

например имеем:
мороженное
мороженное
мороженное
холодное мороженное
холодное мороженное
холодное мороженное
говеное мороженное
говеное мороженное
говеное мороженное

надо взять только те строки где есть слово "мороженное"
другие строки брать не надо.

спасибо
.*мороженное.*
96741

А так вы еще и про таблицу говорите, но в заголовке про регулярку...

Так?
96742
 
Последнее редактирование:

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113
не, не понял меня, мне из этой таблицы нужны строки где только (единственное) слово "мороженное"
то есть имеем
C#:
мороженное
мороженное
мороженное
холодное мороженное
холодное мороженное
холодное мороженное
говеное мороженное
говеное мороженное
говеное мороженное
должно на выходе взять только это

C#:
мороженное
мороженное
мороженное
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113
вот, нашел

96743

по идее должно быть тогда так ^мороженное$ но почему-то не работает

96745
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 696
Баллы
113

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 453
Благодарностей
1 289
Баллы
113

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
528
Баллы
93
где-то находил на форуме, но сейчас не могу найти.

есть таблица, в ней есть названия, нужно взять строки где содержится только это слово, а другие не брать

например имеем:
мороженное
мороженное
мороженное
холодное мороженное
холодное мороженное
холодное мороженное
говеное мороженное
говеное мороженное
говеное мороженное

надо взять только те строки где есть слово "мороженное"
другие строки брать не надо.

спасибо
(?m)^мороженное$
 
  • Спасибо
Реакции: doc и backoff

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113
за что этот момент отвечает?
и почему не получилось найти при помощи такой регулярки ^мороженное$ ?
можно пояснения? спасибо

ps \ в тестере рег.выр. работает, а из таблицы не берет )))) лол
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 696
Баллы
113

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 453
Благодарностей
1 289
Баллы
113
за что этот момент отвечает?
и почему не получилось найти при помощи такой регулярки ^мороженное$ ?
можно пояснения? спасибо

ps \ в тестере рег.выр. работает, а из таблицы не берет )))) лол
Многострочный текст.
В шпаргалке снизу справа посмотритет.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 453
Благодарностей
1 289
Баллы
113

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 453
Благодарностей
1 289
Баллы
113
короче вот видос запилил, для понимания - https://disk.yandex.ru/i/7na1VU9ebmacZw

не работает в таблицах

ps \ такое ощущение что в таблицах это тупо не работает
Отправьте пожалуйста таблицу, так как у меня работает.

Либо конкретно в вашем случае, пробуйте так:
(?m)^Face\b
Либо так:
(?m)\bFace\b
 
Последнее редактирование:

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
где-то находил на форуме, но сейчас не могу найти.

есть таблица, в ней есть названия, нужно взять строки где содержится только это слово, а другие не брать

например имеем:
мороженное
мороженное
мороженное
холодное мороженное
холодное мороженное
холодное мороженное
говеное мороженное
говеное мороженное
говеное мороженное

надо взять только те строки где есть слово "мороженное"
другие строки брать не надо.

спасибо
Может через делегат?
C#:
List<string> list = new List<string>()
{
    "мороженное",
    "мороженное",
    "мороженное",
    "холодное мороженное",
    "холодное мороженное",
    "холодное мороженное",
    "говеное мороженное",
    "говеное мороженное",
    "говеное мороженное"
};

var result = list.FindAll(delegate(string f)
{
    return f == "мороженное";
});
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113
хз, так и не победил, пытался через списки сделать, тоже не получилось.
сделал через костыль - дополнительная проверка, на правильное взятие :(
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 141
Благодарностей
490
Баллы
83
хз, так и не победил, пытался через списки сделать, тоже не получилось.
сделал через костыль - дополнительная проверка, на правильное взятие :(
Нужно брать строки, где содержится только это слово и никаких других более?
Может, проще в список их запихнуть и каждую строку проверить? Trim, а потом Equals?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 933
Благодарностей
6 389
Баллы
113

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 141
Благодарностей
490
Баллы
83

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 141
Благодарностей
490
Баллы
83

djaga

Client
Регистрация
26.04.2020
Сообщения
505
Благодарностей
1 054
Баллы
93
не, не понял меня, мне из этой таблицы нужны строки где только (единственное) слово "мороженное"
то есть имеем
C#:
мороженное
мороженное
мороженное
холодное мороженное
холодное мороженное
холодное мороженное
говеное мороженное
говеное мороженное
говеное мороженное
должно на выходе взять только это

C#:
мороженное
мороженное
мороженное
Можно ещё вот так, надеюсь это будет полезно))

Взять строки из таблицы с помощью regexp:
var columnCList = project.Tables["Таблица"].GetColumn("C").ToList(); // для примера столбец с данными "C"
foreach (var s in columnCList.Where(s => Regex.IsMatch(s, "(?m)^мороженное$")))
{
    project.Lists["res"].Add(s);
}
Приложил по традиции шаблон, чтобы было проще проверить.
 

Вложения

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

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 535
Благодарностей
8 712
Баллы
113
Еще один простой вариант, брать строку из таблицы по регулярке: ^.*;мороженное; (точка-с-запятой - это разделитель столбцов у таблицы). В данном случае (на скриншоте) - были взяты успешно все строки с удалением, где в столбце Б было одно слово "мороженное" и вышло с ошибкой, когда в таблице остались не нужные варианты.

97684
 
  • Спасибо
Реакции: djaga и backoff

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 602
Баллы
113

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