Подскажите регулярку

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28
Нужна регулярка что бы число 1990 разделил на
1
9
9
0
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 572
Благодарностей
9 187
Баллы
113
  • Спасибо
Реакции: andropovleva

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 572
Благодарностей
9 187
Баллы
113
а если к примеру число 02 на
0
2 ?
Все тоже самое.
Любая последовательность символов разбивается точкой (в качестве регурярки) на отдельные символы.
Вам нужно, чтобы в переменной было построчно разбито или в список построчно символы поместить?
 

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28
в список построчно каждый символ, при регулярке . ноли не берутся в расчет.
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 572
Благодарностей
9 187
Баллы
113

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 572
Благодарностей
9 187
Баллы
113

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
582
Баллы
93
C#:
string number = "02032000";
var lst = project.Lists["numbers"];
foreach(char c in number) lst.Add(c.ToString());
 

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 572
Благодарностей
9 187
Баллы
113
@andropovleva Случайно удалились ваши сообщения, прошу прощения.
Вероятно, проблема не в том, что регулярка неправильно работает, а в том, что например макрос {-Profile.BornDay-} возвращает день без лидирующего нуля.
 

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28
@andropovleva Случайно удалились ваши сообщения, прошу прощения.
Вероятно, проблема не в том, что регулярка неправильно работает, а в том, что например макрос {-Profile.BornDay-} возвращает день без лидирующего нуля.
какой то выход есть?
 

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
582
Баллы
93

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28
C#:
string number = project.Variables["PERVAYA"].Value + project.Variables["VTORAYA"].Value + project.Variables["DESYATAYA"].Value;
var lst = project.Lists["numbers"];
foreach(char c in number) lst.Add(c.ToString());
тоже та же проблема "макрос {-Profile.BornDay-} возвращает день без лидирующего нуля. "
 

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
582
Баллы
93
тоже та же проблема "макрос {-Profile.BornDay-} возвращает день без лидирующего нуля. "
водишь всех за нос, сразу условие скажи полностью
C#:
string bornday = project.Profile.BornDay.ToString();
if ( bornday.Length <= 1) bornday = "0" + bornday;
string number = bornday + project.Variables["PERVAYA"].Value + project.Variables["VTORAYA"].Value + project.Variables["DESYATAYA"].Value;
var lst = project.Lists["numbers"];
foreach(char c in number) lst.Add(c.ToString());
 
Последнее редактирование:

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
582
Баллы
93

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28
водишь всех за нос, сразу условие скажи полностью

C#:
string number = "0" + project.Profile.BornDay.ToString() + project.Variables["PERVAYA"].Value + project.Variables["VTORAYA"].Value + project.Variables["DESYATAYA"].Value;
var lst = project.Lists["numbers"];
foreach(char c in number) lst.Add(c.ToString());
222у2.jpg

Получается вместо
1
0
0
8
1
9
9
8

3333333333333.jpg
 

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
582
Баллы
93

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
582
Баллы
93
опиши задачу полностью, тебе нужно взять дату дату рождения из профиля в формате ДеньМесяцГод и положить в список,
где разделителем выступает каждый символ ?
 

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28
опиши задачу полностью, тебе нужно взять дату дату рождения из профиля в формате ДеньМесяцГод и положить в список,
где разделителем выступает каждый символ ?
да именно так, каждый символ в отдельную строчку. Выше был скрин, но его удалили случайно.
 

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
582
Баллы
93
C#:
string bornday = project.Profile.BornDay.ToString();
string bornmonth = project.Profile.BornMonth.ToString();
string bornyear = project.Profile.BornYear.ToString();
if ( bornday.Length <= 1) bornday = "0" + bornday;
if ( bornmonth.Length <= 1) bornmonth = "0" + bornmonth;
string number = bornday + bornmonth + bornyear;
var lst = project.Lists["numbers"];
foreach(char c in number) lst.Add(c.ToString());
 
  • Спасибо
Реакции: Alexmd и andropovleva

andropovleva

Client
Регистрация
23.11.2019
Сообщения
580
Благодарностей
45
Баллы
28
C#:
string bornday = project.Profile.BornDay.ToString();
string bornmonth = project.Profile.BornMonth.ToString();
string bornyear = project.Profile.BornYear.ToString();
if ( bornday.Length <= 1) bornday = "0" + bornday;
if ( bornmonth.Length <= 1) bornmonth = "0" + bornmonth;
string number = bornday + bornmonth + bornyear;
var lst = project.Lists["numbers"];
foreach(char c in number) lst.Add(c.ToString());
Ура! Всё получилось, большое спасибо!)
 
  • Спасибо
Реакции: Ilshakin

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 572
Благодарностей
9 187
Баллы
113
Ура! Всё получилось, большое спасибо!)
:-) А еще можно вот так (через форматирование):
C#:
string bornday = project.Profile.BornDay.ToString("00");
string bornmonth = project.Profile.BornMonth.ToString("00");
string bornyear = project.Profile.BornYear.ToString();
string number = bornday + bornmonth + bornyear;
var lst = project.Lists["numbers"];
foreach(char c in number) lst.Add(c.ToString());
 
  • Спасибо
Реакции: Alexmd

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 423
Баллы
113
:-) а еще можно вот так
C#:
DateTime.Parse(string.Format(@"{0},{1},{2}", project.Profile.BornDay, project.Profile.BornMonth, project.Profile.BornYear)).ToShortDateString().Where(x=>char.IsDigit(x)).ToList().ForEach(x=>project.Lists["filters"].Add(x.ToString()));
 

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