Бесплатно напишу регулярное выражение. Часть 2.

gromozek67

Новичок
Регистрация
02.01.2016
Сообщения
8
Благодарностей
0
Баллы
1
Обычный экшен "Обработка текста" > "Trim" чем не устраивает?
Если переменная из проекта:
Код:
return project.Variables["Text"].Value.Trim();
Если переменная только в коде:
Код:
var text = "Text";
return text.Trim();
Спасибо даже не знал, что это можно сделать внутри программы, не используя джаву.
Может кто-то тогда еще подскажет как можно обрезать все это чтобы остались только последние две цифры (количество цифр в строке постоянно меняется, надо чтобы оставались только последние две)
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
После "Trim" поставить экшен "Обработка текста" > "Regex".
Регулярка:
Код:
\d{2}$
 

gromozek67

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

myweb101

Client
Регистрация
29.04.2013
Сообщения
175
Благодарностей
30
Баллы
28
Здравствуйте, не пойму как составить регулярное выражение. Нужно найти совпадение, но оно не должно входить в диапазон между символами {}. Мне нужно найти Hello, но оно не должно находиться в пределах {..произвольный текст..}

Код:
{Hello world} Hello Mark! {Hello Tod} Bred Bred {Hello Silvia}
Код:
(?i)[^{](hello mark)[^}]
Код:
 Hello Mark!
Но регулярное выражение находит не только Hello , но символы рядом с Hello. Пробелы и другие знаки :(

https://jsfiddle.net/kzsjjdye/8/

Или на С#

Код:
string s = "{Hello world} Hello Mark! {bred Hello Tod} Bred Bred {bred bred Hello Silvia}";
string pattern = @"\G(?i)(?:[^{H]+|\{.*?\}|(?!Hello).)*+\KHello";
string target = "XXX";
Regex regex = new Regex(pattern);
string result = regex.Replace(s, target);
return result;
Но блин ему не нравится вложенный квантификатор +
 
Последнее редактирование:

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Может кто подскажет, нужно удалить пробелы и пустые строки. Переменная выглядит примерно так:

2007-15


пробовал с помощью кода:
var text3 = "x";
var newText3 = text3.replace(/\s+/g, '');
ничего не получается, но если в ручную убрать пустые строки, то выходит то что надо. Может кто подскажет как убрать пустые строки?
На выходе хотелось бы получить:
2007-15
пустые строки в ЗП убираются очень неординарной регуляркой, сам подбирал ее неделю в свое время
Обработка текста
\n\r
заменить на
пустота
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 339
Баллы
113
А можно регуляркой взять всё что внутри дива? Например мы знаем <div class="123">, но не знаем где он закрывается и внутри пара сотен вложенных ветвей div. И нужно взять всё что входит в этот div.
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
А можно регуляркой взять всё что внутри дива? Например мы знаем <div class="123">, но не знаем где он закрывается и внутри пара сотен вложенных ветвей div. И нужно взять всё что входит в этот div.
(?<=<div\ class="123">)[\w\W]*?(?=</div>)

а нет, не то

а чем не устраивает взятие Innerhtml через конструктор действий?
 
Последнее редактирование:

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 339
Баллы
113

Automator

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

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
А как для нескольких переменных сразу такую операцию проделать? Что бы лишние блоки не плодить.
Код:
project.Variables["Text1"].Value = project.Variables["Text1"].Value.Trim();
project.Variables["Text2"].Value = project.Variables["Text2"].Value.Trim();
project.Variables["Text3"].Value = project.Variables["Text3"].Value.Trim();
 
  • Спасибо
Реакции: Automator

Automator

Client
Регистрация
14.02.2016
Сообщения
12
Благодарностей
1
Баллы
3
Код:
project.Variables["Text1"].Value = project.Variables["Text1"].Value.Trim();
project.Variables["Text2"].Value = project.Variables["Text2"].Value.Trim();
project.Variables["Text3"].Value = project.Variables["Text3"].Value.Trim();
Спасибо.
Я использую для этого кода блок "Свой код С#" он настаивает, что бы я выбрал какую-нибудь переменную, что бы положить в нее результат операции. Но для этого скрипта в этом нет никакого смысла. Какое максимально разумное применение можно найти этой переменной? Или можно как-то по другому этот код применить?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Спасибо.
Я использую для этого кода блок "Свой код С#" он настаивает, что бы я выбрал какую-нибудь переменную, что бы положить в нее результат операции. Но для этого скрипта в этом нет никакого смысла. Какое максимально разумное применение можно найти этой переменной? Или можно как-то по другому этот код применить?
Создайте любую переменную, например "CodeResult", туда просто будет прописываться результат работы кода, т.е. "ok". Так и должно быть.
Ну или если она вам мешает, то можно так:
Код:
project.Variables["Text1"].Value = project.Variables["Text1"].Value.Trim();
project.Variables["Text2"].Value = project.Variables["Text2"].Value.Trim();
return project.Variables["Text3"].Value.Trim();
и переменную выбрать "Text3".
 
Последнее редактирование:

Automator

Client
Регистрация
14.02.2016
Сообщения
12
Благодарностей
1
Баллы
3
Создайте любую переменную, например "CodeResult", туда просто будет прописываться результат работы кода, т.е. "ok". Так и должно быть.
Ну или если она вам мешает, то можно так:
Код:
project.Variables["Text1"].Value = project.Variables["Text1"].Value.Trim();
project.Variables["Text2"].Value = project.Variables["Text2"].Value.Trim();
return project.Variables["Text3"].Value.Trim();
и переменную выбрать Text3
В общем, я так и сделал. Думал, может более опытные пользователи подскажут как это приспособить к месту, не люблю когда что-то без дела валяется). Еще раз спасибо.
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
Помогите составить регулярку с исключением текста находящегося в тегах
Код:
<td class="name">
                                    <b>
                                                                            <a href="/trade/lot/361540/2014-bell_700j_lgp.html">Bell 700J LGP</a>
на выходе нужно получить
Bell 700J LGP
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Помогите составить регулярку с исключением текста находящегося в тегах
Код:
<td class="name">
                                    <b>
                                                                            <a href="/trade/lot/361540/2014-bell_700j_lgp.html">Bell 700J LGP</a>
на выходе нужно получить
Bell 700J LGP
Заменить <[^<]+?> или <[^>]*> или <.*?> на пустоту.
 
  • Спасибо
Реакции: inotoxic

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
Заменить <[^<]+?> или <[^>]*> или <.*?> на пустоту.
- Это работает

Интересует, возможно ли составить конструкцию с исключением, чтобы спарсить без использования дополнительных обработок
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Заменить <[^<]+?> или <[^>]*> или <.*?> на пустоту.
- Это работает

Интересует, возможно ли составить конструкцию с исключением, чтобы спарсить без использования дополнительных обработок
(?<=<.*?>).*?(?=<.*?>)
 
  • Спасибо
Реакции: inotoxic

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
(?<=<.*?>).*(?=<.*?>)
- работает, спасибо
 

fri-lancer

Client
Регистрация
01.10.2013
Сообщения
409
Благодарностей
155
Баллы
43

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
  • Спасибо
Реакции: fri-lancer

Bondarevs

Client
Регистрация
31.12.2014
Сообщения
4
Благодарностей
5
Баллы
3
Добрый день!

Помогите, пожалуйста, с регулярной под номер телефона для ZennoPoster.
Есть все возможные форматы телефона:

+79261234567
89261234567
79261234567
+7 926 123 45 67
8(926)123-45-67
123-45-67
9261234567
79261234567
(495)1234567
(495) 123 45 67
89261234567
8-926-123-45-67
8 927 1234 234
8 927 12 12 888
8 927 12 555 12
8 927 123 8 123

Под них 100% должна работать регулярка ^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$
Но в ZennoPoster она не работает.
На странице точно есть номера в разных форматах, а она их не видит.
Что я делаю не так?:dg:
 

Severip

Client
Регистрация
17.10.2013
Сообщения
346
Благодарностей
98
Баллы
28
А если убрать ^ и $
 

Bondarevs

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

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Последнее редактирование:

SkyWay

Новичок
Регистрация
02.01.2016
Сообщения
12
Благодарностей
0
Баллы
1
Помогите сделать регулярку, 2 дня ломаю голову.

То, что красным - переменное значение

Всегда начинается с:
{"id":"ЦИФРЫ ИЛИ ПУСТО","ref_id":"ЦИФРЫ ИЛИ ПУСТО",

МЕЖДУ ЗНАЧЕНИЯМИ НУЖНЫЙ КОНТЕНТ

Заканчивается:
"name":"БУКВЫ ИЛИ ПУСТО"}]},
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Помогите сделать регулярку, 2 дня ломаю голову.

То, что красным - переменное значение

Всегда начинается с:
{"id":"ЦИФРЫ ИЛИ ПУСТО","ref_id":"ЦИФРЫ ИЛИ ПУСТО",

МЕЖДУ ЗНАЧЕНИЯМИ НУЖНЫЙ КОНТЕНТ

Заканчивается:
"name":"БУКВЫ ИЛИ ПУСТО"}]},
попробуй так
\{"id"\:"\d*","ref_id":"\d*",[\w\W]+?"name":"\w*"\}\]\},\[\/quote\]
 

SkyWay

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

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63
Приветствую! Если не затруднит подскажите такую регулярку. есть мобильные номера:
79628667460
+79628667460
9628667460
нужен номер без кода и без последних двух цифр. вот так: 96286674
кто работает с контактиком, оценят)) заранее благодарен
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Приветствую! Если не затруднит подскажите такую регулярку. есть мобильные номера:
79628667460
+79628667460
9628667460
нужен номер без кода и без последних двух цифр. вот так: 96286674
кто работает с контактиком, оценят)) заранее благодарен
(?<=\+*7*)9[\d]{7}
 
  • Спасибо
Реакции: Wide

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