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

Код:
Развернуть Свернуть Копировать
https?://([^.\s]+\.){1,10}([^.\s]){2,9}\/\d+
Но она найдет https://www.ua-region.info/20539924 в урле https://www.ua-region.info/20539924/blabla.php . Если так не надо, то надо указать как заканчивается урл (точнее что идет после него: пробел, тег, какой-то симв...)
 
Недавно начал пользоваться программой, написал простой парсер для сбора ссылок на картинки.

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

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

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

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

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

В итоге получаем то что искали. Как сравнить списки ищите по форуму инструкции, пример здесь - http://zennolab.com/discussion/threads/kak-sravnit-dva-spiska.23691/
 
  • Спасибо
Реакции: Rick
Спасибо большое, по этому алгоритму все работает. На 4 пункт снипет готовый нашел
 
Код:
Развернуть Свернуть Копировать
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+[\.A-Za-z0-9]{2,}
Регулярка для Email собирает мейлы если: в начале точка, нет доменной зоны, в конце точка
Подскажите, пожалуйста, как решить эту проблему?
Конструктор регулярных выражений.jpg
 
На будущее ВСЕМ: указываете здесь не только код Вашей нерабочей регулярки, но и отрывок текста с которого надо делать выборку. А не просто скриншотом его показывайте. То есть больше данных давайте!

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
Подскажите пожалуйста регулярку которая берет запятые с текста и слово которое перед ней.(если это возможно вообще)
Например текст...
В левой области открывшегося окна вставляйте текст, который будете парсить. Чаще всего регулярное выражение для парсинга текста можно составить, используя начало или конец искомого текста, а так же текст, который стоит перед искомым текстом или после него. Для этого, под полем регулярного выражения вы найдете четыре соответствующих поля, при добавлении туда соответствующего текста вы увидите, как вверху собирается регулярное выражение.
Из него нужно получить...
текст,
составить,
текста,
текст,
этого,
поля,
увидите,
 
Последнее редактирование:
Подскажите пожалуйста регулярку которая берет запятые с текста и слово которое перед ней.
Например текст...
В левой области открывшегося окна вставляйте текст, который будете парсить. Чаще всего регулярное выражение для парсинга текста можно составить, используя начало или конец искомого текста, а так же текст, который стоит перед искомым текстом или после него. Для этого, под полем регулярного выражения вы найдете четыре соответствующих поля, при добавлении туда соответствующего текста вы увидите, как вверху собирается регулярное выражение.
Из него нужно получить...
текст,
составить,
текста,
текст,
этого,
поля,
увидите,
Код:
Развернуть Свернуть Копировать
\b\w+\b,
 
  • Спасибо
Реакции: сергос
Всем привет!
Есть два списка с данными вида:
Арсеньев А. - Филипович М.;знач1;знач2;знач3
Борнео (20) - Клоди (19);знач1;знач2;знач3

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

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

1. Тут никак не сравнить. Фиг угадаешь по каким правилам их перевели.
2. Конвертируй список в таблицу на 4 колонки. Построчно обработай первую колонку и приведи ее в стандартный вид типа "А. Арсеньев", чтобы всегда последовательность фамилии\инициалов было одинаковое. А уже потом сравнивай ячейки.
 
Последнее редактирование:
2. Конвертируй список в таблицу на 4 колонки. Построчно обработай первую колонку и приведи ее в стандартній вид типа "А. Арсеньев", чтобы всегда последовательность фамилии\инициалов было одинаковое. А уже потом сравнивай ячейки.
Да, думаю этого никак не избежать. Буду приводить в один вид - "А. Арсеньев". Может после этого обработать текст регуляркой и собрать все согласные, чтобы получилось что-то типа "А. рснв - Флпвч"? Хотя и это на даст 100% результата.
Пойду думать дальше, что с этим можно сделать.
 
Подскажите как удалить в переменной все слова короче 4 символов?
И как сделать разрыв текста к примеру есть текст на 10 тыс символов разбить его на 5 строк по 2 тыс символов?
 
Подскажите как удалить в переменной все слова короче 4 символов?...
Код:
Развернуть Свернуть Копировать
\b\w{1,3}\b

И как сделать разрыв текста к примеру есть текст на 10 тыс символов разбить его на 5 строк по 2 тыс символов?
подобное недавно разбирали в соседней теме http://zennolab.com/discussion/thre...a-teksta-po-predlozhenijam.39188/#post-290650
 
комрады, подскажите пожалуйста, какой символ объединяет 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

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

{"body":{"correspondents.to":[{"value":"asasdsdasdddd@mail.ru","error":"invalid"}],"correspondents.bcc":[{"value":"asasdsdasdddd@mail.ru","error":"invalid"},{"value":"asdasjkdkzjxkc223232@mail.ru","error":"invalid"},{"value":"asjdklzxjclzkjlq1k3j2lk3@bk.ru","error":"invalid"}]},"email":"xinipybr@mail.ru","status":400,"htmlencoded":false}

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

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

но последний эмайл не парсит ( xinipybr@mail.ru )
 
(?<=("value":"|"email":")).*?(?=")
 
  • Спасибо
Реакции: Gizmond
Как удалить строки, которые начинаются с маленькой буквы?
 
Здравствуйте подскажите пожалуйста, как удалить все после второго совпадения ; в строке?
 
Здравствуйте подскажите пожалуйста, как удалить все после второго совпадения ; в строке?
Привет!
Заменить
Код:
Развернуть Свернуть Копировать
(?<=^(.*;){2}).*
на пустоту
 
  • Спасибо
Реакции: S10n4eg
Добрый день.
Подскажите пожалуйста регулярку, чтобы выделяло только наименование файла и расширение?
C:\Users\Giz\Desktop\MAIL.RU\proverka 123.txt
 
Добрый день.
Подскажите пожалуйста регулярку, чтобы выделяло только наименование файла и расширение?
C:\Users\Giz\Desktop\MAIL.RU\proverka 123.txt

Все нашел , можно с-шарп код юзать

Код:
Развернуть Свернуть Копировать
return Path.GetFileName(@"путь к файлу");

Может кому пригодится
 

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