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

iskrakovrov

Client
Регистрация
28.03.2015
Сообщения
532
Благодарностей
171
Баллы
43

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

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113

Rick

Client
Регистрация
21.06.2017
Сообщения
3
Благодарностей
0
Баллы
1

doc

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

Rick

Client
Регистрация
21.06.2017
Сообщения
3
Благодарностей
0
Баллы
1
Недавно начал пользоваться программой, написал простой парсер для сбора ссылок на картинки.

Все работает, только у некоторых картинок есть дубли Img2 и img2_full

Может можно, при наличии полного изображения img2_full, парсить ссылку только на него. А если полного нет, то на img2?

p://\w+\.[a-z]+\.cc/pics/post.*?(?=") парсит все

p://\w+\.[a-z]+\.cc/pics/post/full/.*?(?=") парсит только full, но не видит изображений где нет фулл
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Нет. Тут обычной регуляркой не справится. Надо придумать алгоритм. Вот вариант:

1. Парсим все ссылки первой регуляркой в «список1».
2. Второй регуляркой в «список2».
3. Приводим все елементы в «списке2» к виду «Img2», и скидываем их в «список3» то есть удаляем приставку «_full» (если не умеешь, то делается это через объединение всех элементов в переменную, потом в ней делаешь замену, потом добавляешь в «список3» уже новые данные).
4. Удаляем из «списка1» те строки, которые есть в «списке3».

В итоге получаем то что искали. Как сравнить списки ищите по форуму инструкции, пример здесь - http://zennolab.com/discussion/threads/kak-sravnit-dva-spiska.23691/
 
  • Спасибо
Реакции: Rick

Rick

Client
Регистрация
21.06.2017
Сообщения
3
Благодарностей
0
Баллы
1
Спасибо большое, по этому алгоритму все работает. На 4 пункт снипет готовый нашел
 

rulec

Client
Регистрация
15.12.2016
Сообщения
4
Благодарностей
1
Баллы
3
Код:
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+[\.A-Za-z0-9]{2,}
Регулярка для Email собирает мейлы если: в начале точка, нет доменной зоны, в конце точка
Подскажите, пожалуйста, как решить эту проблему?
Конструктор регулярных выражений.jpg
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
На будущее ВСЕМ: указываете здесь не только код Вашей нерабочей регулярки, но и отрывок текста с которого надо делать выборку. А не просто скриншотом его показывайте. То есть больше данных давайте!

UPD:
Код:
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+[\.A-Za-z0-9]{2,}
Регулярка для Email собирает мейлы если: в начале точка, нет доменной зоны, в конце точка
Подскажите, пожалуйста, как решить эту проблему?
Посмотреть вложение 21582
Код:
[A-Za-z0-9]+[\.\-_A-Za-z0-9]+?@([^.\s]+\.){1,10}([^.\s]){2,9}
 
  • Спасибо
Реакции: rulec

rulec

Client
Регистрация
15.12.2016
Сообщения
4
Благодарностей
1
Баллы
3

сергос

Client
Регистрация
30.03.2015
Сообщения
27
Благодарностей
13
Баллы
3
Подскажите пожалуйста регулярку которая берет запятые с текста и слово которое перед ней.(если это возможно вообще)
Например текст...
В левой области открывшегося окна вставляйте текст, который будете парсить. Чаще всего регулярное выражение для парсинга текста можно составить, используя начало или конец искомого текста, а так же текст, который стоит перед искомым текстом или после него. Для этого, под полем регулярного выражения вы найдете четыре соответствующих поля, при добавлении туда соответствующего текста вы увидите, как вверху собирается регулярное выражение.
Из него нужно получить...
текст,
составить,
текста,
текст,
этого,
поля,
увидите,
 
Последнее редактирование:

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Подскажите пожалуйста регулярку которая берет запятые с текста и слово которое перед ней.
Например текст...
В левой области открывшегося окна вставляйте текст, который будете парсить. Чаще всего регулярное выражение для парсинга текста можно составить, используя начало или конец искомого текста, а так же текст, который стоит перед искомым текстом или после него. Для этого, под полем регулярного выражения вы найдете четыре соответствующих поля, при добавлении туда соответствующего текста вы увидите, как вверху собирается регулярное выражение.
Из него нужно получить...
текст,
составить,
текста,
текст,
этого,
поля,
увидите,
Код:
\b\w+\b,
 
  • Спасибо
Реакции: сергос

сергос

Client
Регистрация
30.03.2015
Сообщения
27
Благодарностей
13
Баллы
3
Stepan
Большое Вам спасибо!
 

Yawarog

Client
Регистрация
25.03.2016
Сообщения
14
Благодарностей
4
Баллы
3
Всем привет!
Есть два списка с данными вида:
Арсеньев А. - Филипович М.;знач1;знач2;знач3
Борнео (20) - Клоди (19);знач1;знач2;знач3

Нужно найти строки с одинаковой первой частью (Арсеньев А. - Филипович М.) и сравнить значения1,2,3.
Проблемы в том, что в списках встречаются :
1. иностранные фамилии с отличным написанием: Бейлис Г. - Роджер М. и Бэйлис Г. - Роуджер М.
2. в одном списке Арсеньев А. - Филипович М., а в другом А. Арсеньев - М. Филипович
Можно ли с помощью регулярки найти строки с одинаковой первой частью (Арсеньев А. - Филипович М.) в двух списках?
Если нет - то хоть подскажите, в каком направлении копать.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Всем привет!
Есть два списка с данными вида:
Арсеньев А. - Филипович М.;знач1;знач2;знач3
Борнео (20) - Клоди (19);знач1;знач2;знач3

Нужно найти строки с одинаковой первой частью (Арсеньев А. - Филипович М.) и сравнить значения1,2,3.
Проблемы в том, что в списках встречаются :
1. иностранные фамилии с отличным написанием: Бейлис Г. - Роджер М. и Бэйлис Г. - Роуджер М.
2. в одном списке Арсеньев А. - Филипович М., а в другом А. Арсеньев - М. Филипович
Можно ли с помощью регулярки найти строки с одинаковой первой частью (Арсеньев А. - Филипович М.) в двух списках?
Если нет - то хоть подскажите, в каком направлении копать.

1. Тут никак не сравнить. Фиг угадаешь по каким правилам их перевели.
2. Конвертируй список в таблицу на 4 колонки. Построчно обработай первую колонку и приведи ее в стандартный вид типа "А. Арсеньев", чтобы всегда последовательность фамилии\инициалов было одинаковое. А уже потом сравнивай ячейки.
 
Последнее редактирование:

Yawarog

Client
Регистрация
25.03.2016
Сообщения
14
Благодарностей
4
Баллы
3
2. Конвертируй список в таблицу на 4 колонки. Построчно обработай первую колонку и приведи ее в стандартній вид типа "А. Арсеньев", чтобы всегда последовательность фамилии\инициалов было одинаковое. А уже потом сравнивай ячейки.
Да, думаю этого никак не избежать. Буду приводить в один вид - "А. Арсеньев". Может после этого обработать текст регуляркой и собрать все согласные, чтобы получилось что-то типа "А. рснв - Флпвч"? Хотя и это на даст 100% результата.
Пойду думать дальше, что с этим можно сделать.
 

keltuzhaknut

Client
Регистрация
24.02.2016
Сообщения
221
Благодарностей
3
Баллы
18
Подскажите как удалить в переменной все слова короче 4 символов?
И как сделать разрыв текста к примеру есть текст на 10 тыс символов разбить его на 5 строк по 2 тыс символов?
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Подскажите как удалить в переменной все слова короче 4 символов?...
Код:
\b\w{1,3}\b
И как сделать разрыв текста к примеру есть текст на 10 тыс символов разбить его на 5 строк по 2 тыс символов?
подобное недавно разбирали в соседней теме http://zennolab.com/discussion/threads/obrezka-teksta-s-soxraneniem-ostatka-teksta-po-predlozhenijam.39188/#post-290650
 

ArtemAMA

Client
Регистрация
13.12.2016
Сообщения
13
Благодарностей
2
Баллы
3
комрады, подскажите пожалуйста, какой символ объединяет 2 результата поиска в регулярке

Код:
"""i-tip""></span>
                                                                                <span class=""value__text"">DVD Multi</span>
                                   
                            "
такой регуляркой
i-tip|(?<=text"">)[\w\W]*?(?=</span>)
находит
0 i-tip
1 DVD Multi

мне же надо
0 i-tip DVD Multi

на какой символ заменить |
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Каждый резувльтат положить в свою переменную а потом эти переменные склеить. Как то так.
 
  • Спасибо
Реакции: ArtemAMA

ArtemAMA

Client
Регистрация
13.12.2016
Сообщения
13
Благодарностей
2
Баллы
3
к сожалению, это часть регулярного выражения, и у меня этот код идет в списке при парсинге характеристик товара с онлайнера (catalog.onliner.by)
процесс в 2 регулярки - 1 левую колонку, 2 правую
левая - (?<=<td>)[\w\W]*?(?=<)
правая - (?<=text">).*(?=</)|i-x|"i-tip"[\w\W]*?(?=</td>) - это та часть регулярки которая не устраивает...
и далее вставляю 2 списка в таблицу
как вариант очистки от лишнего кода придумал только прогнать список правой колонки через переменную на предмет очистки лишнего кода....
 

Gizmond

Client
Регистрация
18.02.2017
Сообщения
270
Благодарностей
53
Баллы
28
Привет! Подскажите пожалуйста регулярку, чтобы выпарсить почты

{"body":{"correspondents.to":[{"value":"[email protected]","error":"invalid"}],"correspondents.bcc":[{"value":"[email protected]","error":"invalid"},{"value":"[email protected]","error":"invalid"},{"value":"[email protected]","error":"invalid"}]},"email":"[email protected]","status":400,"htmlencoded":false}

Пробывал так :

(?<={"value":"|"email":"})[\w\W]*?(?=",")

но последний эмайл не парсит ( [email protected] )
 

Severip

Client
Регистрация
17.10.2013
Сообщения
346
Благодарностей
98
Баллы
28
(?<=("value":"|"email":")).*?(?=")
 
  • Спасибо
Реакции: Gizmond

Gizmond

Client
Регистрация
18.02.2017
Сообщения
270
Благодарностей
53
Баллы
28

Turbina

Client
Регистрация
28.09.2015
Сообщения
67
Благодарностей
12
Баллы
8
Как удалить строки, которые начинаются с маленькой буквы?
 

doc

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

S10n4eg

Client
Регистрация
25.06.2014
Сообщения
256
Благодарностей
39
Баллы
28
Здравствуйте подскажите пожалуйста, как удалить все после второго совпадения ; в строке?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
  • Спасибо
Реакции: S10n4eg

Gizmond

Client
Регистрация
18.02.2017
Сообщения
270
Благодарностей
53
Баллы
28
Добрый день.
Подскажите пожалуйста регулярку, чтобы выделяло только наименование файла и расширение?
C:\Users\Giz\Desktop\MAIL.RU\proverka 123.txt
 

Gizmond

Client
Регистрация
18.02.2017
Сообщения
270
Благодарностей
53
Баллы
28
Добрый день.
Подскажите пожалуйста регулярку, чтобы выделяло только наименование файла и расширение?
C:\Users\Giz\Desktop\MAIL.RU\proverka 123.txt
Все нашел , можно с-шарп код юзать

Код:
return Path.GetFileName(@"путь к файлу");
Может кому пригодится
 

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