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

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Сори, значит не догнал. Пока разбираюсь с возможностями на триал версии, туплю с терминами и функционалом, не смотря на то, что пересмотрел кучу видео курсов....
Можно чуть подробнее алгоритм действий?
1. Беру Дом, складываю в список
2. С# - код, туда вставляю return System.Web.HttpUtility.UrlDecode(project.Variables["string"].Value);
..?
Зачем в список, ну и делай все действия какие тебе надо до вывода в список а уже отработаное ложи в список, если работаешь с браузером то можно с DOM кинуть в переменную перекодировать весь текст а после записать в список
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Всем спасибо, разобрался, прекрасно работает!
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
еще вопрос - есть список ссылок, разного рода, например:
http://www.mysyte.com
http://mysyte.com
http://mysyte.com/
http://test.mysyte.com
http://mysyte.com/test/run
https://mysyte.com/test/run

Нужна регулярка, которая отберет домены, включая поддомены. Т.е. на выходе должно получиться:
mysyte.com
mysyte.com
mysyte.com
test.mysyte.com
mysyte.com
mysyte.com
если на таком примере то можно так (?<=http://|https://).*?\.\w+
и в догонку http://zennolab.com/discussion/threads/reguljarnye-vyrazhenija-chto-ehto-takoe-i-s-chem-ix-edjat.23612/#post-164717
 

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
Для некоторых вариантов номеров телефонов
Код:
(\+\d{1,2})?((\(\d{3}\))|(\-?\d{3}\-)|(\d{3}))((\d{3}\-\d{4})|(\d{3}\-\d\d\-\d\d)|(\d{7})|(\d{3}\-\d\-\d{3}))
+7-916-777-88-00
+7-916-777-8800
+47-916-777-88-00
+47-916-7778800
+47(916)777-88-00
+47(916)777-8800
+47(916)7778800
(916)777-88-00
(916)777-8800
(916)777-8-800
(916)7778800
9167778800
916-7778800
916-777-88-00
916-777-8-800
Не получается нормально спарсить номера
№ Значение
0 5041202005
1 4070281064
2 0000007389
3 3010181040
4 0000000225
5 1155012000
получается такое
 

ParfeniyAnton

Client
Регистрация
24.08.2014
Сообщения
301
Благодарностей
49
Баллы
28
Ребята, помогите модифицировать данную регулярку (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])? Надо чтобы она выдёргивала не все URL, а только URL в которых содержится http://www.timberland.com/shop/ и после Shop идут разделы разные.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Не получается нормально спарсить номера
№ Значение
0 5041202005
1 4070281064
2 0000007389
3 3010181040
4 0000000225
5 1155012000
получается такое
ну так там и написанно ведь что не для всех номеров регулярка эта, формат видимо не подходит под неёё
 
  • Спасибо
Реакции: ParfeniyAnton

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Ребята, помогите модифицировать данную регулярку (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])? Надо чтобы она выдёргивала не все URL, а только URL в которых содержится http://www.timberland.com/shop/ и после Shop идут разделы разные.
Если начало не изменяется то попробуй так http://www\.timberland\.com/shop/[^*<]+\s.*? это если после ссылки идёт пробел
 
  • Спасибо
Реакции: ParfeniyAnton

ParfeniyAnton

Client
Регистрация
24.08.2014
Сообщения
301
Благодарностей
49
Баллы
28

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
  • Спасибо
Реакции: ParfeniyAnton

ParfeniyAnton

Client
Регистрация
24.08.2014
Сообщения
301
Благодарностей
49
Баллы
28

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Для телефонов, потестил вроде много вариантов вытаскивает
Код:
\+?\d+([\(\s\-]?\d+[\)\s\-]?[\d\s\-]+)?
 
  • Спасибо
Реакции: CSS

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Телефоны парсить - это дело очень неблагодарное и сложное.
Для того, чтобы более точно собирало нужные номера, лучше добавлять в начале хотя бы код нужных регионов\операторов. + нужно учесть, что в любом месте могут быть такие знаки, как плюс, пробел, скобка открывающая\закрывающая и т.д.
 
  • Спасибо
Реакции: CSS

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
Телефоны парсить - это дело очень неблагодарное и сложное.
Для того, чтобы более точно собирало нужные номера, лучше добавлять в начале хотя бы код нужных регионов\операторов. + нужно учесть, что в любом месте могут быть такие знаки, как плюс, пробел, скобка открывающая\закрывающая и т.д.
Поддерживаю, поэтому я в первый пост и не добавлял телефонные регулярки, не столь они развитые чтобы их использовать на данном уровне реализации
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
вот так ещё, это если начинается со скобок
Код:
\W+?\+?\d+?([\(\s\-]?\d+[\)\s\-]?[\d\s\-]+)?
понимаю тоже что вариантов куча, поэтому и пишу что для некоторых на которых тестилось
+79005555555
+7(900)-555-5555
+7(900)555-5555
8900-555-55-55
7900-555-55-55
900-555-5555
+7-900-5-5-5-5-5-5-5
+7-900-55-555-55
(900)-555-5555
(900)-55-555-55
(900)-5555555
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Телефоны парсить - это дело очень неблагодарное и сложное.
Для того, чтобы более точно собирало нужные номера, лучше добавлять в начале хотя бы код нужных регионов\операторов. + нужно учесть, что в любом месте могут быть такие знаки, как плюс, пробел, скобка открывающая\закрывающая и т.д.
Ну а то что мы все выкладываем мы ведь не ручаемся что это 100% для всех номеров сылок и тому подобное, каждый ТС потом может немного доработать, просто ленятся
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Ну а то что мы все выкладываем мы ведь не ручаемся что это 100% для всех номеров сылок и тому подобное, каждый ТС потом может немного доработать, просто ленятся
Я делал приблизительно так:

Код:
(9[\ \(-]*?2[\ \(-\)]*?6)([\(\)\ -\ \    /\r\n]*?\d+){1,}
Это для телефонов с кодом 926. Результат, который получили, нужно обрабатывать через разные фильтры, чистки, чтобы получить то, что нужно и все равно попадается много хлама.
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
139
Баллы
43
Всем привет. Нужный топик!
Есть список с кеями, нужно взять только 3 словные. Помогите регуляркой?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Код:
(\S+\s){3}
 
  • Спасибо
Реакции: CSS и GreenWay

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Прям красавчег! Где регулярку взял? Как получилось её составить? :D
Это сарказм?
Ваша немного не правильно работает.
А вообще, для составления иногда пользуюсь этим:
regexp.png


Кстати, если можно, добавьте в старт пост, может кому-то пригодится. Взято, вроде, отсюда: http://www.exlab.net/tools/sheets/regexp.html
 
Последнее редактирование:
  • Спасибо
Реакции: DenisK, CSS и GreenWay

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Это сарказм?
Ваша немного не правильно работает.
А вообще, для составления иногда пользуюсь этим:
Посмотреть вложение 11011

Кстати, если можно, добавьте в старт пост, может кому-то пригодится. Взято, вроде, отсюда: http://www.exlab.net/tools/sheets/regexp.html
Вообще наши регулярки были в принципе аналогичны.
Но для целей будет больше подходить вот эта

Код:
(\w+\ +){2}\w+
 
  • Спасибо
Реакции: CSS, GreenWay и Dimionix

Dimionix

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

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
Для некоторых вариантов номеров телефонов
Код:
(\+\d{1,2})?((\(\d{3}\))|(\-?\d{3}\-)|(\d{3}))((\d{3}\-\d{4})|(\d{3}\-\d\d\-\d\d)|(\d{7})|(\d{3}\-\d\-\d{3}))
+7-916-777-88-00
+7-916-777-8800
+47-916-777-88-00
+47-916-7778800
+47(916)777-88-00
+47(916)777-8800
+47(916)7778800
(916)777-88-00
(916)777-8800
(916)777-8-800
(916)7778800
9167778800
916-7778800
916-777-88-00
916-777-8-800
Вот написал регулярку

Код:
(8|\+7|7)?((\s|\-)?)(\([0-9]{3}\)|\-[0-9]{3}\-|\s[0-9]{3}\s|[0-9]{3})(\-|\s)?[0-9]{3}(-|\s)?[0-9]{2}(-|\s)?[0-9]{2}
Начал хоть как то разбираться)
 

workoles

Client
Регистрация
02.05.2015
Сообщения
276
Благодарностей
81
Баллы
28

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
На солнечную сторону) Всех с наступающим. Желаю всех благ в Новом Году!
 

molotok

Client
Регистрация
17.04.2015
Сообщения
733
Благодарностей
358
Баллы
63
Добрый день. Может кто подскажет, как можно собрать все запятые в строке?

Пример: Мне нужно из предложения "Слово слово, слово, слово" собрать все запятые, причем они должны сохранятся в переменную в виде: ,,,,
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Добрый день. Может кто подскажет, как можно собрать все запятые в строке?

Пример: Мне нужно из предложения "Слово слово, слово, слово" собрать все запятые, причем они должны сохранятся в переменную в виде: ,,,,
Обработка текста - Замена.
Заменить ((?!\,).)* на пустоту.
Тип поиска: Regex
Заменить все.
 
  • Спасибо
Реакции: molotok

molotok

Client
Регистрация
17.04.2015
Сообщения
733
Благодарностей
358
Баллы
63

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