Регулярные выражения на все случаи жизни

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
А регулярку составить не получается(
Без регулярок. Работает нормально
Код:
var list = project.Lists["list"];
int r;
bool str;
do
{
    Random rnd = new Random();
    r = rnd.Next(0, list.Count - 1);
    str = ((!list[r].Contains("<option value=\"-1\">- Select -")) && (!list[r].Contains("[out of stock]"))) ? false : true;
   
}while(str);
return list[r];
 
  • Спасибо
Реакции: xopek2007

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 595
Баллы
113
Без регулярок. Работает нормально
Код:
var list = project.Lists["list"];
int r;
bool str;
do
{
    Random rnd = new Random();
    r = rnd.Next(0, list.Count - 1);
    str = ((!list[r].Contains("<option value=\"-1\">- Select -")) && (!list[r].Contains("[out of stock]"))) ? false : true;
  
}while(str);
return list[r];
запусти со списком, где все строки не подходят)
 
  • Спасибо
Реакции: xopek2007 и SergSh

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
  • Спасибо
Реакции: xopek2007

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
xopek2007 Еще вариант
Код:
var list = new List<string>(project.Lists["list"]);
list.Shuffle();
for(int i = 0; i < list.Count; i++)
{
    if((!list[i].Contains("<option value=\"-1\">- Select -")) && (!list[i].Contains("[out of stock]")))return list[i];
}
return "0";
 
  • Спасибо
Реакции: xopek2007

xopek2007

Client
Регистрация
10.05.2013
Сообщения
99
Благодарностей
8
Баллы
8
Да, спасибо большое, работает. А возможно взять не содержимое а номер строки?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63

xopek2007

Client
Регистрация
10.05.2013
Сообщения
99
Благодарностей
8
Баллы
8
Вместо return list (i); return i; ?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Вместо return list (i); return i; ?
Вот еще вариант. Второй список для стоп строк. Вернет false если совсем ничего нет или номер строки
Код:
var list = new List<string>(project.Lists["list"]);
list.Shuffle();
var list2 = project.Lists["list2"];
for(int i = 0; i < list.Count; i++)
{
    for(int j = 0; j < list2.Count; j++)
    {
        if((list2[j].Contains(list[i])) || (list[i].Contains(list2[j]))) break;
        if(j == list2.Count - 1)return i;
    }
}
return "false";
 
  • Спасибо
Реакции: xopek2007

xopek2007

Client
Регистрация
10.05.2013
Сообщения
99
Благодарностей
8
Баллы
8
Код:
var list = new List<string>(project.Lists["list"]);
list.Shuffle();
for(int i = 0; i < list.Count; i++)
{
    if((!list[i].Contains("<option value=\"-1\">- Select -")) && (!list[i].Contains("[out of stock]")))return i;
}
return "0";
Возвращает 0
Код:
var list = new List<string>(project.Lists["list"]);
list.Shuffle();
for(int i = 0; i < list.Count; i++)
{
    if((!list[i].Contains("<option value=\"-1\">- Select -")) && (!list[i].Contains("[out of stock]")))return list[i];
}
return "0";
Возвращает содержимое строки.
С этим уже можно работать, но:(( изначально парсится список :
Код:
<option value="-1">- Select -
White / Rush Orange-Black
AH8511-001[out of stock]
Bn8511-1v0
11[out of stock]
12
13
А когда выбран первый селект содержание списка выглядит так:
Код:
<option value="-1" selected="selected">- Select -
White/Hyper Jade-Obsidian
И сниппет возвращает "not match":(
А этот вариант:
Код:
var list = new List<string>(project.Lists["list"]);
list.Shuffle();
var list2 = project.Lists["list2"];
for(int i = 0; i < list.Count; i++)
{
    for(int j = 0; j < list2.Count; j++)
    {
        if((list2[j].Contains(list[i])) || (list[i].Contains(list2[j]))) break;
        if(j == list2.Count - 1)return i;
    }
}
return "false";
тоже возвращает 0
 

Вложения

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

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
последний вариант вернул номер строки 0. список перемешивается перед каждым запуском сниппета
попробуй этот кусок
Код:
 if(j == list2.Count - 1)return i;
заменить на
Код:
 if(j == list2.Count - 1)return list[i] + i;
пару разиков запусти и посмотри на результат в логе
 
  • Спасибо
Реакции: xopek2007

xopek2007

Client
Регистрация
10.05.2013
Сообщения
99
Благодарностей
8
Баллы
8
Строка парсится нормально а номер строки как бог пошлет:-)
 

xopek2007

Client
Регистрация
10.05.2013
Сообщения
99
Благодарностей
8
Баллы
8
Блин, все равно берет иногда не то, что надо:(
 

Вложения

Mutant

Client
Регистрация
19.09.2014
Сообщения
187
Благодарностей
36
Баллы
28
Подскажите, о великие!
Как быстро превратить:
2.3K -> 2300
 

Advice

Client
Регистрация
18.03.2013
Сообщения
26
Благодарностей
4
Баллы
3
  • Спасибо
Реакции: Mutant

Mutant

Client
Регистрация
19.09.2014
Сообщения
187
Благодарностей
36
Баллы
28
Как вариант. Все короче городушки которую я сгородил. Спасибо.
 

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
Подскажите, как удалить из строки - Невеста из Стамбула (Istanbullu Gelin) скобки и всё, что внутри скобок? Бывает и так - Istanbullu Gelin (Istanbullu Gelin)
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Подскажите, как удалить из строки - Невеста из Стамбула (Istanbullu Gelin) скобки и всё, что внутри скобок? Бывает и так - Istanbullu Gelin (Istanbullu Gelin)
Код:
project.Variables["str"].Value = Macros.TextProcessing.Replace(project.Variables["str"].Value, "\\(.*\\)", "", "Regex", "All");
 
  • Спасибо
Реакции: Vinovnik

сергос

Client
Регистрация
30.03.2015
Сообщения
27
Благодарностей
13
Баллы
3
Гуру помогите пожалуйста решением.
Нужна регулярка которая возьмет атрибут href из кода
но не все подряд,а только те у которых есть слово PAGEN
пример кода
<a href="/distribution/multimedia_projectors/?PAGEN_1=2" onclick="BX.ajax.insertToNode('/distribution/multimedia_projectors/?PAGEN_1=2&amp;bxajaxid=f8ea4c331537e2638387ce2cbf7a376e',
результат /distribution/multimedia_projectors/?PAGEN_1=2
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 331
Баллы
113
Нужно удалять даты в конце строк, если они там есть.
Пример
Код:
Peanut M&M's , but tests show  Peanut Butter M&M's  are  gluten - free ! Jul 17, 2017
Можно ли это сделать регулярками?
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 358
Благодарностей
1 419
Баллы
113
Нужно удалять даты в конце строк, если они там есть.
Пример
Код:
Peanut M&M's , but tests show  Peanut Butter M&M's  are  gluten - free ! Jul 17, 2017
Можно ли это сделать регулярками?
(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[0-9,\ ]{8,9}$

or

([A-Z]{1}[a-z]{2})[0-9,\ ]{7,9}$
 
  • Спасибо
Реакции: Astraport

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
помогите, как сделать из 109 минут 1:49:00
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
  • Спасибо
Реакции: Vinovnik и doc

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
  • Спасибо
Реакции: Vinovnik

echoragaq

Client
Регистрация
14.08.2018
Сообщения
11
Благодарностей
0
Баллы
1
Господа, есть тексты
[ Главное меню (10) ] [Уведомления (5) ] [ Баланс ]

Нужна регулярка, которая оставит в итоге только текст со скобками (из этого [ Главное меню (10) ] сделает это[ Главное меню ])
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 362
Благодарностей
8 648
Баллы
113
Господа, есть тексты
[ Главное меню (10) ] [Уведомления (5) ] [ Баланс ]

Нужна регулярка, которая оставит в итоге только текст со скобками (из этого [ Главное меню (10) ] сделает это[ Главное меню ])
Регулярка:
Код:
\ \(.*?\)\
Через экшен Обработка текста - Замена (Regex):

upload_2018-9-21_19-56-54.png


upload_2018-9-21_19-57-16.png
 

gvgikay

Новичок
Регистрация
19.09.2018
Сообщения
9
Благодарностей
0
Баллы
1

CmauJluk

Client
Регистрация
25.12.2017
Сообщения
287
Благодарностей
60
Баллы
28
Помогите из этой ссылки (атрибуты ссылки постоянно меняются)
Код:
https://video-1-102.xxxx.ru/grobot/rNn3nTjhSUH2BGAjgcRszQ/1538012574/120/0x500003970ba81c92/ed4eaec35c664af9a4baab35a03cfae0.mp4?i=360x360_688
Выдрать вот эту часть (тоже постоянно разное)
Код:
ed4eaec35c664af9a4baab35a03cfae0
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 362
Благодарностей
8 648
Баллы
113
Помогите из этой ссылки (атрибуты ссылки постоянно меняются)
Код:
https://video-1-102.xxxx.ru/grobot/rNn3nTjhSUH2BGAjgcRszQ/1538012574/120/0x500003970ba81c92/ed4eaec35c664af9a4baab35a03cfae0.mp4?i=360x360_688
Выдрать вот эту часть (тоже постоянно разное)
Код:
ed4eaec35c664af9a4baab35a03cfae0
Код:
[^\/]+(?=\.mp4)
upload_2018-9-26_23-42-23.png
 
  • Спасибо
Реакции: doc и CmauJluk

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