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

doc

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

Folt

Client
Регистрация
16.12.2016
Сообщения
71
Благодарностей
11
Баллы
8

doc

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

Folt

Client
Регистрация
16.12.2016
Сообщения
71
Благодарностей
11
Баллы
8
Вот ещё что неправильно собирается.
В тексте есть конструкции вида:
Код:
[{"id":123456,"from_id":-798564,
Мне нужно собрать только в данному случае : 123456
А регулярка, почему то и from_id тоже цепляет
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Вот ещё что неправильно собирается.
В тексте есть конструкции вида:
Код:
[{"id":123456,"from_id":-798564,
Мне нужно собрать только в данному случае : 123456
А регулярка, почему то и from_id тоже цепляет


хватит в самом деле
 
  • Спасибо
Реакции: Folt и Dimionix

Folt

Client
Регистрация
16.12.2016
Сообщения
71
Благодарностей
11
Баллы
8

keltuzhaknut

Client
Регистрация
24.02.2016
Сообщения
221
Благодарностей
3
Баллы
18
Как вытащить из текста:7773PaРсEDIМG7773countТУТЦИФРЫ от 0 до 9999
Пример текста: 7773PaРсEDIМG7773count0Все, что ... рациона. <b> 7773PaРсEDIМG7773count3Витамины также способствуют, а в два раза лучше. 7773PaРсEDIМG7773count1Человеческий организм так устроен, что: слова которые должно было спарсить:

7773PaРсEDIМG7773count0
7773PaРсEDIМG7773count3
7773PaРсEDIМG7773count1

Постоянные данные: 7773PaРсEDIМG7773count.* - а что нужно дописать дальше, чтобы 0, 1, 3 и другие цифры от 0 до 9999 собрало, еслиб был пробел - спарсил бы, но тут начивается слово, а как так спарсить все - не знаю. Нужна помощь...
 
Последнее редактирование:

Dimionix

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

keltuzhaknut

Client
Регистрация
24.02.2016
Сообщения
221
Благодарностей
3
Баллы
18

Croan

Новичок
Регистрация
17.03.2017
Сообщения
17
Благодарностей
1
Баллы
3
подскажите пожалуйста регулярку для ввода подтверждения номера телефона вконтакте в ситуации когда вход в аккаунт осуществляется из необычного места(требуется ввести часть номера). есть регулярка для российских номеров (?<=\d{1})\d{8}? она работает, отсеивая два числа с конца и +7 вначале. но такая регулярка не подойдет для белорусских или украинских номеров. к примеру 380123456789 - здесь необходимо будет вводить часть номера 1234567 . в общем надо сделать такую регулярку которая в зависимости от кода страны (380,7,375 и т.д.) будет отбрасывать его и последние два числа номера.
 

Dimionix

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

Croan

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

Croan

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

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113

afk

Client
Регистрация
28.11.2016
Сообщения
99
Благодарностей
25
Баллы
18
Почему самое короткое совпадение не выделяет именно самый короткий фрагмент, а берёт самый большой?
Screenshot_12.png


Почему самое короткое совпадение не выделяет именно самый короткий фрагмент, а берёт самый большой?
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 440
Благодарностей
503
Баллы
113
Почему самое короткое совпадение не выделяет именно самый короткий фрагмент, а берёт самый большой?
Посмотреть вложение 20094

Почему самое короткое совпадение не выделяет именно самый короткий фрагмент, а берёт самый большой?
потому что берётся первый обратный слеш как начало регулярки, далее ближайшее .jpg Так что берёт всё верно. Если нужно имя файла взять, то это ([^\\]+$)
 

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
Друзья, подскажите, пожалуйста, как сделать замену:
Все слова, состоящие только из заглавных букв, заменить на эти же слова из строчных букв.

Пример:
"Есть разные СЛОВА. Бывают и ТАКИЕ. А также просто текст обычный."

Вот нужно заменить:
СЛОВА ---> слова
ТАКИЕ ----> такие

P.S.: Можно конечно через костыль типа взятия по регулярке слова из заглавных букв и потом экшеном Tolower его заменить. И потом так в цикле. Но это как-то совсем нерационально получается.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Друзья, подскажите, пожалуйста, как сделать замену:
Все слова, состоящие только из заглавных букв, заменить на эти же слова из строчных букв.

Пример:
"Есть разные СЛОВА. Бывают и ТАКИЕ. А также просто текст обычный."

Вот нужно заменить:
СЛОВА ---> слова
ТАКИЕ ----> такие

P.S.: Можно конечно через костыль типа взятия по регулярке слова из заглавных букв и потом экшеном Tolower его заменить. И потом так в цикле. Но это как-то совсем нерационально получается.
а замена всех значений по регулярке это не цикл думаешь?)
В зенно не предусмотрены такие регулярки. Вроде в перле или ещё где есть модификаторы изменения регистра, но не тут.
 
  • Спасибо
Реакции: Danny

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
Понятно. Жаль )
В NotePad находил, что есть операторы \U и \L - перевести в верхний и нижний регистр соответственно.
Думал, может, есть что-то аналогичное и в Зенно. Эти операторы из Ноутпада не работают в Зенно.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
P.S.: Можно конечно через костыль типа взятия по регулярке слова из заглавных букв и потом экшеном Tolower его заменить. И потом так в цикле. Но это как-то совсем нерационально получается.
Не проще взять весь текст целиком, перевести в нижний регистр экшеном ToLower и перезаписать? Или не все слова нужно заменять?
 
  • Спасибо
Реакции: Danny

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
В этом-то и проблема )
Нужно не все слова заменять. А только те, которые состоят из заглавных букв.
Я имел ввиду, что может какие-то аббревиатуры не нужно переводить. В твоем случае, используй ToLower для всего текста и не парься, что те слова, который уже в нижнем регистре станут такими, просто весь текст станет в нижнем регистре.
 
  • Спасибо
Реакции: Danny и masterLomaster

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Я имел ввиду, что может какие-то аббревиатуры не нужно переводить. В твоем случае, используй ToLower для всего текста и не парься, что те слова, который уже в нижнем регистре станут такими, просто весь текст станет в нижнем регистре.
Полагаю, предложение с большой буквы играет роль
 
  • Спасибо
Реакции: Danny

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
В текстах часто встречаются названия городов, различные имена и т.п.
Поэтому все в нижнем регистре - не вариант.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Почему самое короткое совпадение не выделяет именно самый короткий фрагмент, а берёт самый большой?
Посмотреть вложение 20094

Почему самое короткое совпадение не выделяет именно самый короткий фрагмент, а берёт самый большой?
Потому-что оно и есть самое короткое, для вашего примера можно использовать такой Regex
Код:
(?<=\\)[^\\]*?\.jpg
 

steklarul

Client
Регистрация
07.09.2016
Сообщения
164
Благодарностей
7
Баллы
18
Всем привет нуждаюсь в вашей помощи вопрос такой есть текст каторый находится в переменой текст такой " FootUmbrellaCarEye " в другой переменой стоит слово " Umbrella " как получить номер слова ? в данном тексте четыре слова все начинаются с заглавной буквы думаю что тут можно применить регулярки толика какую понятие не имеею буду признателен за помоши)
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Всем привет нуждаюсь в вашей помощи вопрос такой есть текст каторый находится в переменой текст такой " FootUmbrellaCarEye " в другой переменой стоит слово " Umbrella " как получить номер слова ? в данном тексте четыре слова все начинаются с заглавной буквы думаю что тут можно применить регулярки толика какую понятие не имеею буду признателен за помоши)
1. Разделить " FootUmbrellaCarEye " на строки списка:
Код:
Foot
Umbrella
Car
Eye
и сравнить в цикле с каждым елементом списка пока не найдем совпадение.


www.orka13.ru/fls/Zenno/FootUmbrellaCarEye.zip
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Всем привет нуждаюсь в вашей помощи вопрос такой есть текст каторый находится в переменой текст такой " FootUmbrellaCarEye " в другой переменой стоит слово " Umbrella " как получить номер слова ? в данном тексте четыре слова все начинаются с заглавной буквы думаю что тут можно применить регулярки толика какую понятие не имеею буду признателен за помоши)
C#:
string str = project.Variables["Text"].Value;
string str2 = project.Variables["Text2"].Value;

MatchCollection mCol = Regex.Matches(str, @"[A-ZА-ЯЁ][a-zа-яё]+");

for (int i = 0; i < mCol.Count; i++)
    if (str2 == mCol[i].Value)
        return i;
Отсчёт начинается с нуля! Если нужно с единицы, то return i + 1;
 

kirsa

Client
Регистрация
06.12.2016
Сообщения
50
Благодарностей
9
Баллы
8
Добрый день. Прошу помощи в составлении регулярки. Есть произвольный текст с тегами ссылок на ресурсы:
Опровергается, как мы указывали выше, динамическими соображениями это <a href="https://badsite.tld/2017/05/30/53297/tut-kakaya-to-hren">внегалактические</a>. Прозрачна, радиоизлучение которого достаточно <a href="https://goodsiteone.tld/tut-kakaya-to-hren">сильное</a> радиоизлучения определяется с низкой точностью. Наблюдениях в <a href="https://goodsitetwo.tld/tut-kakaya-to-hren">состав галактики</a>, не проявляли себя. И они делятся на отождествление лишь. Галактических источников близко друг. Большинство галактических источников радиоизлучения являются объектами, входящими в том. Обнаруживалось странное обстоятельство звездной величины. Положение источника радиоизлучения оптический объект нужно искать в радиоизлучений. Поэтому соответствующий источнику <a href="https://badsite.tld/2016/02/20/13297/tut-kakaya-to-hren">радиоизлучения не обнаруживалось</a>. Но при достаточной близости радиозвезд было отдано много усилий например звезды первой.
Из него надо удалить теги со ссылками на известный домен badsite.tld
Думал сделать это в два приёма. В первом удаляем закрывающий тег, во втором - тег с нужными атрибутами. Протестировал в редакторе на regex101.com. Результат положительный (первые два скрина). А вот привести к формату редактора в ZP не получается (третий скрин).
 

Вложения

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