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

andropovleva

Client
Регистрация
23.11.2019
Сообщения
402
Благодарностей
28
Баллы
28
Подскажите плиз регулярку! Поиск 8 значного числа перед которым > и после которого <

Проще говоря 8 значное число заключенное в >число< скобки

Нужно только число
 

dizney

Client
Регистрация
25.01.2014
Сообщения
51
Благодарностей
47
Баллы
18
Подскажите плиз регулярку! Поиск 8 значного числа перед которым > и после которого <

Проще говоря 8 значное число заключенное в >число< скобки

Нужно только число
Если правильно вас понял, то эта регулярка
C#:
(?<=>)\d{8}(?=<)
 
  • Спасибо
Реакции: andropovleva

Nick

Client
Регистрация
22.07.2014
Сообщения
1 943
Благодарностей
772
Баллы
113
Вопрос: а какого стандарта регулярные выражения поддерживаются в Зенке? Какие онлайн-сервисы или программы вы используете для конструирования сложных выражений?

Я вот смотрю на популярный сервис Regexr, на котором огромная библиотека готовых сниппетов... Ни одна регулярка оттуда в Зенке (по-крайней мере, в Тестере регулярок) нормально не отрабатывается, хотя на Regexr они в двух форматах: PCRE (Server), JavaScript (Browser).

Если брать сниппеты оттуда, то надо ещё как-то их редактировать, чтобы они начали работать? Помогите!
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 037
Благодарностей
1 090
Баллы
113
Вопрос: а какого стандарта регулярные выражения поддерживаются в Зенке? Какие онлайн-сервисы или программы вы используете для конструирования сложных выражений?

Я вот смотрю на популярный сервис Regexr, на котором огромная библиотека готовых сниппетов... Ни одна регулярка оттуда в Зенке (по-крайней мере, в Тестере регулярок) нормально не отрабатывается, хотя на Regexr они в двух форматах: PCRE (Server), JavaScript (Browser).

Если брать сниппеты оттуда, то надо ещё как-то их редактировать, чтобы они начали работать? Помогите!
Заготовка тут.
Проверка тут:
95218
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 695
Благодарностей
3 952
Баллы
113
Можно ли регуляркой без цикла заменить в строке все вхождения повторяющихся подряд заданных символов на одно?
Например заменить все точки и восклицательные знаки на единственные экземпляры.
Было: Привет!!!!!! Отлично....
Стало: Привет! Отлично.
С пробелами работает такое:
Regex.Replace(str, @"\s+", " ", RegexOptions.Multiline);
а вот как такое же сделать с другими заданными символами?
[SOLVED]
Оказывается всё просто:
Regex.Replace(str, @"!+", "!", RegexOptions.Multiline);
 
  • Спасибо
Реакции: djaga

ivan777

Client
Регистрация
10.12.2018
Сообщения
72
Благодарностей
22
Баллы
8
подскажите пожалуйста какой регуляркой в emeditor-e отобрать строки с двумя символами в строке :

текст:текст:текст:текст
текст:текст
текст:текст:текст:текст
текст:текст

нужны строки, включающие два :

т.е. на входе
[email protected]:pass
smtp.vodafone.it:465:[email protected]:pass
[email protected]:pass
smtp.montevideo.com.uy:465:[email protected]:pass
 
Последнее редактирование:

udder

Client
Регистрация
28.03.2017
Сообщения
559
Благодарностей
113
Баллы
43
Как обработать, чтобы оставить только текст ZennoPoster - это просто. Не требует специальных знаний, чтобы начать работу
"zBAuLc l97dzf"><div class="BNeawe vvjwJb AP7Wnd">ZennoPoster - это просто. Не требует специальных знаний, чтобы начать работу
 

sergodjan66

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
18 172
Благодарностей
8 036
Баллы
113
Как обработать, чтобы оставить только текст ZennoPoster - это просто. Не требует специальных знаний, чтобы начать работу
Обработка текста - Замена (на пустоту) по регулярке: .*>
 
  • Спасибо
Реакции: udder

andropovleva

Client
Регистрация
23.11.2019
Сообщения
402
Благодарностей
28
Баллы
28
Подскажите плиз регулярку, поиск 15 значного числа начинающегося с 1000
 
  • Спасибо
Реакции: Sho

djaga

Client
Регистрация
26.04.2020
Сообщения
409
Благодарностей
651
Баллы
93
  • Спасибо
Реакции: Sho

djaga

Client
Регистрация
26.04.2020
Сообщения
409
Благодарностей
651
Баллы
93
нет, что то не так в начале 1000 , должно типо искать все числа такие 100012345678912

а находит вот:
Посмотреть вложение 97978
Все верно, он находит все числа выше 1000 (1001 и т.д.)
Почему же тогда нормально не написали и не привели примеры?

Тогда вот:
Поиск всех вариантов с началом "1000"
1000\d+

upd:
Поиск только 15ти значного числа:
1000\d{11}
Пример для тестов
 
Последнее редактирование:

andropovleva

Client
Регистрация
23.11.2019
Сообщения
402
Благодарностей
28
Баллы
28
Все верно, он находит все числа выше 1000 (1001 и т.д.)
Почему же тогда нормально не написали и не привели примеры?

Тогда вот:
Поиск всех вариантов с началом "1000"
1000\d+

upd:
Поиск только 15ти значного числа:
1000\d{11}
Прошу прощения, не подумал что двусмысленно описал.
 
  • Спасибо
Реакции: Sho

barabaka

Новичок
Регистрация
20.09.2022
Сообщения
5
Благодарностей
1
Баллы
3
Доброе время суток!Помогите с регуляркой что не так (?<=HTTP/1\.1\>).*?(?=\)
Или подскажите другую,нужно спарсить значение Post запроса если 200 или 303,то идет дальше,если другое то ошибка и шаблон по красной нитке.За ранее благодарен.
 
Последнее редактирование:

Alexmd

Client
Регистрация
10.12.2018
Сообщения
917
Благодарностей
1 155
Баллы
93
Доброе утро!
Ответ всегда состоит из 3 цифр и эта комбинация из 3-х цифр всегда идет первой, так что регулярка простая, даже я справлюсь \d{3}
Также, набросал пример использования.

C#:
string body = project.Variables["POST"].Value;// переменная с ответом
int[] codes = new int[]{200,303};// коды удовлетворяющих ответов
int code;
if(int.TryParse(Regex.Match(project.Variables["POST"].Value, @"\d{3}").Value, out code)){
    if(codes.Contains(code)){
        return code;
    }
    else throw new Exception($"Код ответа: {code}");
}
else throw new Exception([email protected]"Ошибка получения данных: ""{body}"" .");
 
  • Спасибо
Реакции: Ilshakin и barabaka

barabaka

Новичок
Регистрация
20.09.2022
Сообщения
5
Благодарностей
1
Баллы
3
Доброе утро!
Ответ всегда состоит из 3 цифр и эта комбинация из 3-х цифр всегда идет первой, так что регулярка простая, даже я справлюсь \d{3}
Также, набросал пример использования.

C#:
string body = project.Variables["POST"].Value;// переменная с ответом
int[] codes = new int[]{200,303};// коды удовлетворяющих ответов
int code;
if(int.TryParse(Regex.Match(project.Variables["POST"].Value, @"\d{3}").Value, out code)){
    if(codes.Contains(code)){
        return code;
    }
    else throw new Exception($"Код ответа: {code}");
}
else throw new Exception([email protected]"Ошибка получения данных: ""{body}"" .");
А теперь для особо одаренных
 

Вложения

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
605
Благодарностей
165
Баллы
43
  • Спасибо
Реакции: Sanekk

barabaka

Новичок
Регистрация
20.09.2022
Сообщения
5
Благодарностей
1
Баллы
3
Предупреждение за некорректное поведение!
Предупреждение администрации форума.
А теперь для особо одаренных открывает вики и читаем. Тебе помогают - ты еще и огрызаешься, фу.
Во первы ты кто такой? Ты что ли помог? Во вторых где я огрытзаюсь умник,Я обращаюсь к тому человеку который мне помог,если другим тяжело.
 
Последнее редактирование модератором:

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
605
Благодарностей
165
Баллы
43
Предупреждение администрации форума.

Во первы ты кто такой? Ты что ли помог? Во вторых где я огрытзаюсь умник,Я обращаюсь к тому человеку который мне помог,если другим тяжело.
Не считаю сообщение по типу "Для особо одаренных" - корректным и с достаточным уровнем уважения. Читай вики и шпаргалки по регуляркам.
 
  • Спасибо
Реакции: djaga

Phoenix78

Client
Регистрация
06.11.2018
Сообщения
10 749
Благодарностей
5 128
Баллы
113
Не считаю сообщение по типу "Для особо одаренных" - корректным и с достаточным уровнем уважения. Читай вики и шпаргалки по регуляркам.
Ахаха, а я подумал, что он себя так назвал , "Для особо одаренных" :D
 
  • Спасибо
Реакции: djaga

Alexmd

Client
Регистрация
10.12.2018
Сообщения
917
Благодарностей
1 155
Баллы
93
А теперь для особо одаренных
Я ж в своём сообщении указал и саму регулярку. Туда, где стрелочка на Вашем скриншоте ее и вставьте. А пример с кодом выполняет описанное Вами дальнейшее действие и его надо вставлять в отдельный кубик «Свой код С#».
Ничего не понял, что тут за кипиш был, но, видимо, кто-то кого-то неправильно понял, так как выражение устоявшееся и вполне себе так недвусмысленное, даже если захотеть.
А насчёт Вики… надо бы и полистать хотя бы приличия ради.
 
  • Спасибо
Реакции: djaga и barabaka

barabaka

Новичок
Регистрация
20.09.2022
Сообщения
5
Благодарностей
1
Баллы
3
Я ж в своём сообщении указал и саму регулярку. Туда, где стрелочка на Вашем скриншоте ее и вставьте. А пример с кодом выполняет описанное Вами дальнейшее действие и его надо вставлять в отдельный кубик «Свой код С#».
Ничего не понял, что тут за кипиш был, но, видимо, кто-то кого-то неправильно понял, так как выражение устоявшееся и вполне себе так недвусмысленное, даже если захотеть.
А насчёт Вики… надо бы и полистать хотя бы приличия ради.
Спасибо за адекватный ответ.Вики читал и делал по примерам, далёк от этого вот и написал сюда.А парнишка решил поумничать в не ту сторону. Ещё раз спасибо.
 
  • Спасибо
Реакции: Alexmd

Markoonij

Client
Регистрация
13.10.2020
Сообщения
58
Благодарностей
2
Баллы
8
Помогите с регуляркой. Нужно из текста:

$M('bs').onAddBetSlipCache(['s',[[104273604,4702415,2,'PBA Commissioner\'s Cup',1,'Rain or Shine Elasto Painters','Bay Area Dragons',1.98,'11/11/2022 15:00','a','-26.50',1,0,0,1,'Bay Area Dragons',1.55,1,43,0,0,0,'','',0,0,38504,0]],0]);

Выдернуть два значения.
  1. 1.98
  2. -26.50
При условии, что текст до и после этих значении динамичный, а пунктуация одинаковая
 

ezotonal

Client
Регистрация
13.01.2014
Сообщения
802
Благодарностей
223
Баллы
43
Помогите с регуляркой. Нужно из текста:

$M('bs').onAddBetSlipCache(['s',[[104273604,4702415,2,'PBA Commissioner\'s Cup',1,'Rain or Shine Elasto Painters','Bay Area Dragons',1.98,'11/11/2022 15:00','a','-26.50',1,0,0,1,'Bay Area Dragons',1.55,1,43,0,0,0,'','',0,0,38504,0]],0]);

Выдернуть два значения.
  1. 1.98
  2. -26.50
Условие поменял)
 

sergodjan66

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
18 172
Благодарностей
8 036
Баллы
113
Помогите с регуляркой. Нужно из текста:

$M('bs').onAddBetSlipCache(['s',[[104273604,4702415,2,'PBA Commissioner\'s Cup',1,'Rain or Shine Elasto Painters','Bay Area Dragons',1.98,'11/11/2022 15:00','a','-26.50',1,0,0,1,'Bay Area Dragons',1.55,1,43,0,0,0,'','',0,0,38504,0]],0]);

Выдернуть два значения.
  1. 1.98
  2. -26.50
При условии, что текст до и после этих значении динамичный, а пунктуация одинаковая
Попробуйте такие (для 1 и 2 соотв.):
(?<=',\d+,[\w\W]+','[\w\W]+',).*?(?=,'\d+/\d+/\d+)
(?<=\d+:\d+','.',').*?(?=',\d)
 
  • Спасибо
Реакции: Alexmd и Markoonij

Alexmd

Client
Регистрация
10.12.2018
Сообщения
917
Благодарностей
1 155
Баллы
93
(?<=',\d+,[\w\W]+','[\w\W]+',).*?(?=,'\d+/\d+/\d+)
(?<=\d+:\d+','.',').*?(?=',\d)
когда вижу такие регулярки, дурно становится
Я б так сделал
C#:
string data = "$M('bs').onAddBetSlipCache(['s',[[104273604,4702415,2,'PBA Commissioner\'s Cup',1,'Rain or Shine Elasto Painters','Bay Area Dragons',1.98,'11/11/2022 15:00','a','-26.50',1,0,0,1,'Bay Area Dragons',1.55,1,43,0,0,0,'','',0,0,38504,0]],0]);";
//соберу в массив значения, разбив строку на запятые
var split = data.Split(',').ToArray();
//посмотрю какие номера совпадений "мои"
for(int i = 0; i< split.Length; i++){
    project.SendInfoToLog(i + " = " +split[i]);
}
//выбираю нужные значения
project.SendInfoToLog(split[8]);
project.SendInfoToLog(split[11].Replace("'",""));
 
  • Спасибо
Реакции: Markoonij и sergodjan66

Markoonij

Client
Регистрация
13.10.2020
Сообщения
58
Благодарностей
2
Баллы
8
когда вижу такие регулярки, дурно становится
Я б так сделал
C#:
string data = "$M('bs').onAddBetSlipCache(['s',[[104273604,4702415,2,'PBA Commissioner\'s Cup',1,'Rain or Shine Elasto Painters','Bay Area Dragons',1.98,'11/11/2022 15:00','a','-26.50',1,0,0,1,'Bay Area Dragons',1.55,1,43,0,0,0,'','',0,0,38504,0]],0]);";
//соберу в массив значения, разбив строку на запятые
var split = data.Split(',').ToArray();
//посмотрю какие номера совпадений "мои"
for(int i = 0; i< split.Length; i++){
    project.SendInfoToLog(i + " = " +split[i]);
}
//выбираю нужные значения
project.SendInfoToLog(split[8]);
project.SendInfoToLog(split[11].Replace("'",""));
Спасибо!
 
Последнее редактирование:

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