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

Markoni

Client
Регистрация
27.12.2018
Сообщения
60
Благодарностей
2
Баллы
8
Скажите пожалуйста, в кубике нажатия на Click зеннопостер нажимает на сайте кнопку Weiter (Дальше), но когда на сайте больше страниц по поиску людей нету, кнопка "Weiter" стает неактивной и кубик идет по красной ветке, но в одном сайте кнопка Weiter активная дальше но на 100 странице останавливается но всеравно активна и на красную ветку кубик не переходит что б удалить дубли и продолжить отправку сообщений пользователям. Скажите пожалуйста, как сделать так что б после 100 странице кубик не переходил на "Парсим страницу" а перешел дальше на "Удалить дубли"?

фото.png
 

semafor

Client
Регистрация
27.12.2016
Сообщения
217
Благодарностей
189
Баллы
43
Здравствуйте! Что-то не могу совладать.
Есть линки вида https://pp.userapi.com/c63802151/v6380884/c2ab/3NrKKrT8GfA.jpg
Нужно получить имя файла из строки (3NrKKrT8GfA.jpg для строки выше). Буду признателен за подсказку!
 

doc

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

semafor

Client
Регистрация
27.12.2016
Сообщения
217
Благодарностей
189
Баллы
43
Блин, точно, смотрел же на конец текста! Спасибо, doc!
 

akella

Client
Регистрация
28.02.2016
Сообщения
100
Благодарностей
17
Баллы
18
Привет всем, имеется ответ на запрос стандартного вида
Код:
Content-Type: application/json; charset=utf-8
Vary: Accept-Language, Cookie, Accept-Encoding
Content-Language: en
Content-Encoding: gzip
Connection: keep-alive
Content-Length: 205


status: ok
какими регулярками можно выпарсить отдельно заголовки и тело?
 

orka13

Client
Регистрация
07.05.2015
Сообщения
1 890
Благодарностей
1 867
Баллы
113
Привет всем, имеется ответ на запрос стандартного вида
Код:
Content-Type: application/json; charset=utf-8
Vary: Accept-Language, Cookie, Accept-Encoding
Content-Language: en
Content-Encoding: gzip
Connection: keep-alive
Content-Length: 205


status: ok
какими регулярками можно выпарсить отдельно заголовки и тело?
Заголовки:
Код:
^(\S.*\r\n)+
тело:
Код:
(?<=^(\S.*\r\n)+\s+)\S[\w\W]*$
 
  • Спасибо
Реакции: akella

serg32

Client
Регистрация
27.02.2015
Сообщения
506
Благодарностей
12
Баллы
18
Всем привет!
Подскажите пожалуйста такой баг с регуляркой.
У меня есть регулярное выражение очень простое, такого вида: {-Variable.mail-}.*
Эта регулярка возвращает полную строку.
Я объединяю элементы списка и кладу в переменную, а в ней выполняю такую регулярку, но она возвращает пустоту, хотя если в этой переменной сделать обычный поиск вставив туда значение переменной {-Variable.mail-} он находит эту строку с текстом, но вот регулярка его не видит.

Я понял баг в чем, в том что иногда в переменной {-Variable.mail-} - отсутствуют заглавные буквы, которые присутствуют в списке....Можно как-нибудь сделать поиск нерегистрозависимым?
 

sergodjan66

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
14 713
Благодарностей
6 178
Баллы
113
Всем привет!
Подскажите пожалуйста такой баг с регуляркой.
У меня есть регулярное выражение очень простое, такого вида: {-Variable.mail-}.*
Эта регулярка возвращает полную строку.
Я объединяю элементы списка и кладу в переменную, а в ней выполняю такую регулярку, но она возвращает пустоту, хотя если в этой переменной сделать обычный поиск вставив туда значение переменной {-Variable.mail-} он находит эту строку с текстом, но вот регулярка его не видит.

Я понял баг в чем, в том что иногда в переменной {-Variable.mail-} - отсутствуют заглавные буквы, которые присутствуют в списке....Можно как-нибудь сделать поиск нерегистрозависимым?
Код:
(?i){-Variable.mail-}.*
 
  • Спасибо
Реакции: serg32

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
255
Благодарностей
78
Баллы
28
как мне написать регулярку что бы из этого
Код:
<span class="propery-title">Особенности:</span>
<span class="propery-des" title="Лёгкая установка,Ультратонкий,Защита от царапин">Лёгкая установка,Ультратонкий,Защита от царапин</span>
Получить такой результат
Особенности:Лёгкая установка,Ультратонкий,Защита от царапин
Никак не могу разобраться с групповыми регулярками
 

doc

Client
Регистрация
30.03.2012
Сообщения
7 956
Благодарностей
4 049
Баллы
113
как мне написать регулярку что бы из этого
Код:
<span class="propery-title">Особенности:</span>
<span class="propery-des" title="Лёгкая установка,Ультратонкий,Защита от царапин">Лёгкая установка,Ультратонкий,Защита от царапин</span>
Получить такой результат
Особенности:Лёгкая установка,Ультратонкий,Защита от царапин
Никак не могу разобраться с групповыми регулярками
а причём здесь групповые регулярки? какую регулярку ты составил на данный момент?
 

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
255
Благодарностей
78
Баллы
28
HTML:
                                                <li class="property-item" id="product-prop-521" data-attr="1281" data-title="Мобильный телефон">
                        <span class="propery-title">Применение:</span>
                        <span class="propery-des" title="Мобильный телефон">Мобильный телефон</span>
                    </li>
                                                                <li class="property-item" id="product-prop-100002145" data-attr="201657808,7649,201657807" data-title="Лёгкая установка,Ультратонкий,Защита от царапин">
                        <span class="propery-title">Особенности:</span>
                        <span class="propery-des" title="Лёгкая установка,Ультратонкий,Защита от царапин">Лёгкая установка,Ультратонкий,Защита от царапин</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200484263" data-attr="203123881,203123882,203540089,1719295247,203537112,203538087,201455273,495977153" data-title="Mate9,Коврики 9 lite,Mate 20 Pro,Mate 10,Mate 20 Lite,Mate 20,Mate 8,Mate 10 Pro">
                        <span class="propery-title">Совместимость Модель Huawei:</span>
                        <span class="propery-des" title="Mate9,Коврики 9 lite,Mate 20 Pro,Mate 10,Mate 20 Lite,Mate 20,Mate 8,Mate 10 Pro">Mate9,Коврики 9 lite,Mate 20 Pro,Mate 10,Mate 20 Lite,Mate 20,Mate 8,Mate 10 Pro</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200000719" data-attr="200003854" data-title="Huawei">
                        <span class="propery-title">Совместимый бренд смартфона:</span>
                        <span class="propery-des" title="Huawei">Huawei</span>
                    </li>
                                                                <li class="property-item" id="product-prop-2" data-attr="203255911" data-title="AZV">
                        <span class="propery-title">Бренд:</span>
                        <span class="propery-des" title="AZV">AZV</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200484262" data-attr="349907" data-title="Да">
                        <span class="propery-title">Края до края покрытие:</span>
                        <span class="propery-des" title="Да">Да</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200046261" data-attr="349906" data-title="Нет">
                        <span class="propery-title">С Розничной Упаковке:</span>
                        <span class="propery-des" title="Нет">Нет</span>
                    </li>
                                                                <li class="property-item" id="product-prop-3" data-attr="" data-title="For Huawei Glass">
                        <span class="propery-title">Артикул:</span>
                        <span class="propery-des" title="For Huawei Glass">For Huawei Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-351" data-attr="203084852" data-title="Спереди Плёнка">
                        <span class="propery-title">Тип:</span>
                        <span class="propery-des" title="Спереди Плёнка">Спереди Плёнка</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200000941" data-attr="100018975" data-title="Нет">
                        <span class="propery-title">Упаковка:</span>
                        <span class="propery-des" title="Нет">Нет</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="Full Tempered Protective Glass">
                        <span class="propery-title">model1:</span>
                        <span class="propery-des" title="Full Tempered Protective Glass">Full Tempered Protective Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="Screen Protector Film">
                        <span class="propery-title">model2:</span>
                        <span class="propery-des" title="Screen Protector Film">Screen Protector Film</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="For Huawei Mate 8 Glass">
                        <span class="propery-title">model3:</span>
                        <span class="propery-des" title="For Huawei Mate 8 Glass">For Huawei Mate 8 Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="For Huawei Mate 9 Mate 9 Lite Glass">
                        <span class="propery-title">model4:</span>
                        <span class="propery-des" title="For Huawei Mate 9 Mate 9 Lite Glass">For Huawei Mate 9 Mate 9 Lite Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="For Huawei  Mate 10 Mate 10 Pro Mate 10 Lite Glass">
                        <span class="propery-title">model5:</span>
                        <span class="propery-des" title="For Huawei  Mate 10 Mate 10 Pro Mate 10 Lite Glass">For Huawei  Mate 10 Mate 10 Pro Mate 10 Lite Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="For Huawei  Mate 20 Mate 20 Lite Glass">
                        <span class="propery-title">model6:</span>
                        <span class="propery-des" title="For Huawei  Mate 20 Mate 20 Lite Glass">For Huawei  Mate 20 Mate 20 Lite Glass</span>
                    </li>
                                    </ul>
    </div>
</div>
Вот такой регуляркой паршу, после удаляю лишнее
Код:
(?<=propery-title">)[\w\W]*?(?=">)
http://prntscr.com/n6rhbb
 

backoff

Client
Регистрация
20.04.2015
Сообщения
4 575
Благодарностей
3 313
Баллы
113
а не проще делать так
1. парсишь весь блок
2. разбиваешь блок на блоки с тем чем надо и добавляешь в список
3. берешь из списка по одному то что надо и выпаршиваешь нужное
звучит сложно, но на деле норм работает
 

doc

Client
Регистрация
30.03.2012
Сообщения
7 956
Благодарностей
4 049
Баллы
113
HTML:
                                                <li class="property-item" id="product-prop-521" data-attr="1281" data-title="Мобильный телефон">
                        <span class="propery-title">Применение:</span>
                        <span class="propery-des" title="Мобильный телефон">Мобильный телефон</span>
                    </li>
                                                                <li class="property-item" id="product-prop-100002145" data-attr="201657808,7649,201657807" data-title="Лёгкая установка,Ультратонкий,Защита от царапин">
                        <span class="propery-title">Особенности:</span>
                        <span class="propery-des" title="Лёгкая установка,Ультратонкий,Защита от царапин">Лёгкая установка,Ультратонкий,Защита от царапин</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200484263" data-attr="203123881,203123882,203540089,1719295247,203537112,203538087,201455273,495977153" data-title="Mate9,Коврики 9 lite,Mate 20 Pro,Mate 10,Mate 20 Lite,Mate 20,Mate 8,Mate 10 Pro">
                        <span class="propery-title">Совместимость Модель Huawei:</span>
                        <span class="propery-des" title="Mate9,Коврики 9 lite,Mate 20 Pro,Mate 10,Mate 20 Lite,Mate 20,Mate 8,Mate 10 Pro">Mate9,Коврики 9 lite,Mate 20 Pro,Mate 10,Mate 20 Lite,Mate 20,Mate 8,Mate 10 Pro</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200000719" data-attr="200003854" data-title="Huawei">
                        <span class="propery-title">Совместимый бренд смартфона:</span>
                        <span class="propery-des" title="Huawei">Huawei</span>
                    </li>
                                                                <li class="property-item" id="product-prop-2" data-attr="203255911" data-title="AZV">
                        <span class="propery-title">Бренд:</span>
                        <span class="propery-des" title="AZV">AZV</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200484262" data-attr="349907" data-title="Да">
                        <span class="propery-title">Края до края покрытие:</span>
                        <span class="propery-des" title="Да">Да</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200046261" data-attr="349906" data-title="Нет">
                        <span class="propery-title">С Розничной Упаковке:</span>
                        <span class="propery-des" title="Нет">Нет</span>
                    </li>
                                                                <li class="property-item" id="product-prop-3" data-attr="" data-title="For Huawei Glass">
                        <span class="propery-title">Артикул:</span>
                        <span class="propery-des" title="For Huawei Glass">For Huawei Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-351" data-attr="203084852" data-title="Спереди Плёнка">
                        <span class="propery-title">Тип:</span>
                        <span class="propery-des" title="Спереди Плёнка">Спереди Плёнка</span>
                    </li>
                                                                <li class="property-item" id="product-prop-200000941" data-attr="100018975" data-title="Нет">
                        <span class="propery-title">Упаковка:</span>
                        <span class="propery-des" title="Нет">Нет</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="Full Tempered Protective Glass">
                        <span class="propery-title">model1:</span>
                        <span class="propery-des" title="Full Tempered Protective Glass">Full Tempered Protective Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="Screen Protector Film">
                        <span class="propery-title">model2:</span>
                        <span class="propery-des" title="Screen Protector Film">Screen Protector Film</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="For Huawei Mate 8 Glass">
                        <span class="propery-title">model3:</span>
                        <span class="propery-des" title="For Huawei Mate 8 Glass">For Huawei Mate 8 Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="For Huawei Mate 9 Mate 9 Lite Glass">
                        <span class="propery-title">model4:</span>
                        <span class="propery-des" title="For Huawei Mate 9 Mate 9 Lite Glass">For Huawei Mate 9 Mate 9 Lite Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="For Huawei  Mate 10 Mate 10 Pro Mate 10 Lite Glass">
                        <span class="propery-title">model5:</span>
                        <span class="propery-des" title="For Huawei  Mate 10 Mate 10 Pro Mate 10 Lite Glass">For Huawei  Mate 10 Mate 10 Pro Mate 10 Lite Glass</span>
                    </li>
                                                                <li class="property-item" id="product-prop-" data-attr="" data-title="For Huawei  Mate 20 Mate 20 Lite Glass">
                        <span class="propery-title">model6:</span>
                        <span class="propery-des" title="For Huawei  Mate 20 Mate 20 Lite Glass">For Huawei  Mate 20 Mate 20 Lite Glass</span>
                    </li>
                                    </ul>
    </div>
</div>
Вот такой регуляркой паршу, после удаляю лишнее
Код:
(?<=propery-title">)[\w\W]*?(?=">)
http://prntscr.com/n6rhbb
Код:
(?<=class="propery-des" title=")[\w\W]*?(?=">)
 

backoff

Client
Регистрация
20.04.2015
Сообщения
4 575
Благодарностей
3 313
Баллы
113
ему надо из этого
Код:
<span class="propery-title">model4:</span>
                        <span class="propery-des" title="For Huawei Mate 9 Mate 9 Lite Glass">For Huawei Mate 9 Mate 9 Lite Glass</span>
получить это
model4:For Huawei Mate 9 Mate 9 Lite Glass
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 391
Благодарностей
1 968
Баллы
113
C#:
var response = project.Variables["Response"].Value;

var list = new List<string>();
var sourceList = project.Lists["SourceList"];

var regex = new Regex(@"(?<=<li\ class)[\w\W]*?(?=</li>)");
regex.Matches(response).Cast<Match>().ToList().ForEach(m=>list.Add(m.Value));

foreach (var ans in list)
{
    var reg1 = Regex.Match(ans, @"(?<=propery-title"">).*?(?=<)").Value.Trim();
    var reg2 = Regex.Match(ans, @"(?<=propery-des""\ title="").*?(?="">)").Value.Trim();

    sourceList.Add(reg1 + reg2);
}
или

C#:
var response = project.Variables["Response"].Value;

var list = new List<string>();
var sourceList = project.Lists["SourceList"];

var regex = new Regex(@"(?<=propery-title"">)[\w\W]*?(?=</li>)");
regex.Matches(response).Cast<Match>().ToList().ForEach(m=>list.Add(m.Value));

foreach (var ans in list)
{
    var result = Regex.Replace(ans, " {2,}|<[^>]+>|\n", string.Empty);
 
    sourceList.Add(result);
}
ещё вариант

C#:
var sourceList = project.Lists["SourceList"];

var response = project.Variables["Response"].Value;

response = Regex.Replace(response, " {2,}|<[^>]+>|\r", "").Trim();
response = Regex.Replace(response, "\n{2,}", "_").Replace("\n", "").Trim();

var list = response.Split(new [] { "_" }, StringSplitOptions.RemoveEmptyEntries).ToList();
sourceList.AddRange(list);
 
Последнее редактирование:
  • Спасибо
Реакции: THE CaHeK

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
255
Благодарностей
78
Баллы
28
а не проще делать так
1. парсишь весь блок
2. разбиваешь блок на блоки с тем чем надо и добавляешь в список
3. берешь из списка по одному то что надо и выпаршиваешь нужное
звучит сложно, но на деле норм работает
как раз хотел избавится от этих костылей, код ssXXXss отлично подходит.
 

санчил

Client
Регистрация
15.04.2016
Сообщения
211
Благодарностей
29
Баллы
28
уважаемые знатоки помогите получить из такой строки
http://vepdom.ru/
вот в таком формате
vepdom.ru
 

dmitriy1384

Client
Регистрация
04.11.2013
Сообщения
246
Благодарностей
77
Баллы
28
Подскажите пожалуйста, как их строки Vash kod: 231-123 spasibo. Aktiviruyte do 21.03 po ssilke mal.ru/234874
Регуляркой получить 231123
 

doc

Client
Регистрация
30.03.2012
Сообщения
7 956
Благодарностей
4 049
Баллы
113
  • Спасибо
Реакции: dmitriy1384

Sanekk

Client
Регистрация
24.06.2016
Сообщения
766
Благодарностей
281
Баллы
63
нужно получить цифры, скобки могут быть, могут не быть, также между цифрами могут отсутствовать "-" и "/"
К-м "Горка Осень" -15 НОВАТЕКС (алова, хаки/темно-зеленый тет) PRIDE (р-р 44-46/170-176)
 

prambush

Новичок
Регистрация
31.03.2019
Сообщения
4
Благодарностей
0
Баллы
1
Подскажите пожалуйста, а как удалить регулярным выражением все внутри таких скобок, >любой текст и цифры анг. и рус. языка<
кроме тех в которых будут только нужные определенные слова с заменой на >< - в случае если нету искомого обязательного, не обходимого слова, а если есть, то не трогать а искать в тексте дальше и заменять на такое? к примеру если >любой текст и КЛЮЧЕВОЕ СЛОВА цифры анг. и рус. языка< - то если в таком примере обнаружит ключевым словом, чтобы не трогало и не заменяло.. ищу не могу понять и найти как такое сделать... как упростить...
 

Sanekk

Client
Регистрация
24.06.2016
Сообщения
766
Благодарностей
281
Баллы
63
Подскажите пожалуйста, а как удалить регулярным выражением все внутри таких скобок, >любой текст и цифры анг. и рус. языка<
кроме тех в которых будут только нужные определенные слова с заменой на >< - в случае если нету искомого обязательного, не обходимого слова, а если есть, то не трогать а искать в тексте дальше и заменять на такое? к примеру если >любой текст и КЛЮЧЕВОЕ СЛОВА цифры анг. и рус. языка< - то если в таком примере обнаружит ключевым словом, чтобы не трогало и не заменяло.. ищу не могу понять и найти как такое сделать... как упростить...
наверно следует как минимум привести пример того что есть и что из этого нужно получить.
ну и похоже что тут одной регуляркой не отделаешся...
 

LightWood

Moderator
Регистрация
04.11.2010
Сообщения
2 377
Благодарностей
868
Баллы
113
уважаемые знатоки помогите получить из такой строки
http://vepdom.ru/
вот в таком формате
vepdom.ru
Решается конструктором стандартным.
https://zennolab.com/wiki/ru:creating-a-regular-expressions

Ответ:
(?<=http://).*?(?=/)

Подскажите пожалуйста, а как удалить регулярным выражением все внутри таких скобок, >любой текст и цифры анг. и рус. языка<
кроме тех в которых будут только нужные определенные слова с заменой на >< - в случае если нету искомого обязательного, не обходимого слова, а если есть, то не трогать а искать в тексте дальше и заменять на такое? к примеру если >любой текст и КЛЮЧЕВОЕ СЛОВА цифры анг. и рус. языка< - то если в таком примере обнаружит ключевым словом, чтобы не трогало и не заменяло.. ищу не могу понять и найти как такое сделать... как упростить...
Вам могу подсказать что-то такое. Чтобы в одну регулярку и операция не засовывать, то разбить на шаги.
Подсказываю в меру понимания задачи.
1. Ищите все сопадания и помещаете в список регуляркой >.*?<
2. Каждую строчку берете по очереди (условно в переменную1) и парсите в ней регуляркой (слово1|слово2|слово3), если результат равен пустоте (не нашли ключевых слов), то в изначальном тексте заменяем переменную1 (строчку которую взяли из списка) на ><
а если результат не пустой (нашли ключевые слова), то берем следующую строчку.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 391
Благодарностей
1 968
Баллы
113
бред полный, одни только слова ненужные, иди свои статьи слставляй
 

Deadman

Client
Регистрация
24.09.2011
Сообщения
73
Благодарностей
3
Баллы
8
Подскажите пожалуйста, как разделить русский текст на 5-10 слов, при этом, чтобы захватывало предлоги и не считало их словом?
 
Регистрация
12.07.2014
Сообщения
916
Благодарностей
356
Баллы
63

Deadman

Client
Регистрация
24.09.2011
Сообщения
73
Благодарностей
3
Баллы
8
вот) в том то и проблема, что предлоги считает как слова и что с этим делать, не могу придумать
 

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