Вход | Регистрация
 

как из произвольной строки вытащить .

как из произвольной строки вытащить .
Я
   lamme
 
31.05.21 - 14:34
.. вытащить последовательность из 20 чисел

т.е. идет загрузка из банк-клиента
идет комментарий типа
РАСЧЕТНЫЙ СЧЕТ ИНДИВИДУАЛЬНЫЙ ПРЕДПРИНИМАТЕЛЬ ВАСИЛИЙ Р/С 12342123122222212 В ФИЛИАЛ № 1234 БАНКА ВТБ (ПАО)

как можно вытащить р/с ?
 
 Партнерская программа EFSOL Oblako
   Масянька
 
1 - 31.05.21 - 14:36
(0) Botom "Р/С" и далее (после пробела) 20 символов твои.
   Масянька
 
2 - 31.05.21 - 14:36
(1) Ищещь
   mistеr
 
3 - 31.05.21 - 14:36
Регулярные выражения еще не предлагали?
   craxx
 
4 - 31.05.21 - 14:38
(0) Как-то так
МассивСтрок = СтрРазделить(НашаСтрока," ",ИСТИНА);
Для Каждого Строчка Из МассивСтрок Цикл
  /// тут проверим что все символы в строке цифры и стдДлина(Строчка)=20

КонецЦикла;
   polosov
 
5 - 31.05.21 - 14:38
(0) Начни с регулярного выражения: "\d{20}"
   lamme
 
6 - 31.05.21 - 14:42
регулярные - да. это я думал
https://infostart.ru/public/64222/

а как это регулярное выражение составить?

ну т.е. вот такое вот \[([\d\wЁА-Я]+)\]
   lamme
 
7 - 31.05.21 - 14:42
регулярными - красивее будет однако
   mikecool
 
8 - 31.05.21 - 14:46
(6) проверяй на чем то типа https://regexr.com/
   Галахад
 
9 - 31.05.21 - 14:47
Стр = "РАСЧЕТНЫЙ СЧЕТ ИНДИВИДУАЛЬНЫЙ ПРЕДПРИНИМАТЕЛЬ ВАСИЛИЙ Р/С 12342123122222212000 В ФИЛИАЛ № 1234 БАНКА ВТБ (ПАО)";

М = СтрРазделить(Стр, "0123456789", Ложь);
Для Каждого Эл Из М Цикл
    Стр = СтрЗаменить(Стр, Эл, " ");
КонецЦикла;
М = СтрРазделить(Стр, " ", Ложь);
Для Каждого Эл Из М Цикл
    Если СтрДлина(Эл) = 20 Тогда
        Стр = Эл;
        Прервать;
    КонецЕсли;
КонецЦикла;

Сообщить(Стр);
   Масянька
 
10 - 31.05.21 - 15:06
(7)
    Стр = "РАСЧЕТНЫЙ СЧЕТ ИНДИВИДУАЛЬНЫЙ ПРЕДПРИНИМАТЕЛЬ ВАСИЛИЙ Р/С 12342123122222212000 В ФИЛИАЛ № 1234 БАНКА ВТБ (ПАО)";
    RegExp = Новый COMОбъект("VBScript.RegExp");
    RegExp.IgnoreCase     = Истина;     // Игнорировать регистр 

    RegExp.Global     = Истина;     // Поиск всех вхождений шаблона 

    RegExp.MultiLine     = Истина;     // Многострочный режим 

    RegExp.Pattern     = "[^0-9]";    // отбор только чисел

    СтрРС = RegExp.Replace(Стр, "");
   aka MIK
 
11 - 31.05.21 - 15:09
   BIP1
 
12 - 31.05.21 - 15:26
(10) Вернёт 123421231222222120001234🙂
Да и зачем такие сложности с COMОбъект'ом?
Сред(Стр, СтрНайти(Стр, "Р/С") + 4, 20)

работает быстрее. И всего 1 строка😀 (ВРег() строки и прочие пред- и пост- проверки не в счёт)
   Chameleon1980
 
13 - 31.05.21 - 15:29
обленились люди думать
   Chameleon1980
 
14 - 31.05.21 - 15:30
Стаж: 14 лет 7 месяцев 6 дней
   Chameleon1980
 
15 - 31.05.21 - 15:30
да и ума то много тут не нужно
   lamme
 
16 - 31.05.21 - 15:31
Спасибо
   Garykom
 
17 - 31.05.21 - 15:44
А если Р/С записан с " " типа так: "1234 2123 1222 2221 2000" ?
   BIP1
 
18 - 31.05.21 - 15:55
(17) обрабатываемую строку, так или иначе в минимальном виде надо будет готовить. Как минимум ВРег(). Сюда же можно и СтрЗаменить() добавить🤷‍♂️
Но в контексте первоначальной задачи "т.е. идет загрузка из банк-клиента" вероятность того, что расчетный счет в выгрузке из банка, будет в каком-то нетипичном виде - исчезающе мала.
   acht
 
19 - 31.05.21 - 16:15
(18) > Но в контексте первоначальной задачи
расчетный счет задается отдельным полем в файле
   BIP1
 
20 - 31.05.21 - 16:18
(19) вроде, так написано в "задаче"

"т.е. идет загрузка из банк-клиента
идет комментарий типа" - РАСЧЕТНЫЙ СЧЕТ ИНДИВИДУАЛЬНЫЙ ПРЕДПРИНИМАТЕЛЬ ВАСИЛИЙ Р/С 12342123122222212 В ФИЛИАЛ № 1234 БАНКА ВТБ (ПАО)
   SleepyHead
 
21 - 31.05.21 - 18:03
(0) погугли "лексический анализатор" и "конечный автомат", а также "описание грамматики". Возможно, сейчас все это устарело, а когда-то в 93 году я писал лабораторные на тему создания простенького языка программирования, надо было анализировать синтаксис кода.

Тебе надо выделить последовательность символов, состоящую из 20 цифр.
   mistеr
 
22 - 01.06.21 - 08:28
(21) Ты еще Книгу Дракона посоветуй... Для загрузки банка самое то. :-/
   acht
 
23 - 01.06.21 - 09:20
(21) И блокчейн! Без него ничего не получится!
   hhhh
 
24 - 01.06.21 - 12:07
(21) на хрена все эти извращения? 20 символов? По слову "Р/С" не судьба ему проверить?


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.