|
как из произвольной строки вытащить . | ☑ | ||
---|---|---|---|---|
0
lamme
31.05.21
✎
14:34
|
.. вытащить последовательность из 20 чисел
т.е. идет загрузка из банк-клиента идет комментарий типа РАСЧЕТНЫЙ СЧЕТ ИНДИВИДУАЛЬНЫЙ ПРЕДПРИНИМАТЕЛЬ ВАСИЛИЙ Р/С 12342123122222212 В ФИЛИАЛ № 1234 БАНКА ВТБ (ПАО) как можно вытащить р/с ? |
|||
1
Масянька
31.05.21
✎
14:36
|
(0) Botom "Р/С" и далее (после пробела) 20 символов твои.
|
|||
2
Масянька
31.05.21
✎
14:36
|
(1) Ищещь
|
|||
3
mistеr
31.05.21
✎
14:36
|
Регулярные выражения еще не предлагали?
|
|||
4
craxx
31.05.21
✎
14:38
|
(0) Как-то так
МассивСтрок = СтрРазделить(НашаСтрока," ",ИСТИНА); Для Каждого Строчка Из МассивСтрок Цикл /// тут проверим что все символы в строке цифры и стдДлина(Строчка)=20 КонецЦикла; |
|||
5
polosov
31.05.21
✎
14:38
|
(0) Начни с регулярного выражения: "\d{20}"
|
|||
6
lamme
31.05.21
✎
14:42
|
регулярные - да. это я думал
https://infostart.ru/public/64222/ а как это регулярное выражение составить? ну т.е. вот такое вот \[([\d\wЁА-Я]+)\] |
|||
7
lamme
31.05.21
✎
14:42
|
регулярными - красивее будет однако
|
|||
8
mikecool
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(Стр, ""); |
|||
11
aka MIK
31.05.21
✎
15:09
|
||||
12
BIP1
31.05.21
✎
15:26
|
(10) Вернёт 123421231222222120001234🙂
Да и зачем такие сложности с COMОбъект'ом? Сред(Стр, СтрНайти(Стр, "Р/С") + 4, 20) работает быстрее. И всего 1 строка😀 (ВРег() строки и прочие пред- и пост- проверки не в счёт) |
|||
13
Chameleon1980
31.05.21
✎
15:29
|
обленились люди думать
|
|||
14
Chameleon1980
31.05.21
✎
15:30
|
Стаж: 14 лет 7 месяцев 6 дней
|
|||
15
Chameleon1980
31.05.21
✎
15:30
|
да и ума то много тут не нужно
|
|||
16
lamme
31.05.21
✎
15:31
|
Спасибо
|
|||
17
Garykom
гуру
31.05.21
✎
15:44
|
А если Р/С записан с " " типа так: "1234 2123 1222 2221 2000" ?
|
|||
18
BIP1
31.05.21
✎
15:55
|
(17) обрабатываемую строку, так или иначе в минимальном виде надо будет готовить. Как минимум ВРег(). Сюда же можно и СтрЗаменить() добавить🤷♂️
Но в контексте первоначальной задачи "т.е. идет загрузка из банк-клиента" вероятность того, что расчетный счет в выгрузке из банка, будет в каком-то нетипичном виде - исчезающе мала. |
|||
19
acht
31.05.21
✎
16:15
|
(18) > Но в контексте первоначальной задачи
расчетный счет задается отдельным полем в файле |
|||
20
BIP1
31.05.21
✎
16:18
|
(19) вроде, так написано в "задаче"
"т.е. идет загрузка из банк-клиента идет комментарий типа" - РАСЧЕТНЫЙ СЧЕТ ИНДИВИДУАЛЬНЫЙ ПРЕДПРИНИМАТЕЛЬ ВАСИЛИЙ Р/С 12342123122222212 В ФИЛИАЛ № 1234 БАНКА ВТБ (ПАО) |
|||
21
SleepyHead
гуру
31.05.21
✎
18:03
|
(0) погугли "лексический анализатор" и "конечный автомат", а также "описание грамматики". Возможно, сейчас все это устарело, а когда-то в 93 году я писал лабораторные на тему создания простенького языка программирования, надо было анализировать синтаксис кода.
Тебе надо выделить последовательность символов, состоящую из 20 цифр. |
|||
22
mistеr
01.06.21
✎
08:28
|
(21) Ты еще Книгу Дракона посоветуй... Для загрузки банка самое то. :-/
|
|||
23
acht
01.06.21
✎
09:20
|
(21) И блокчейн! Без него ничего не получится!
|
|||
24
hhhh
01.06.21
✎
12:07
|
(21) на хрена все эти извращения? 20 символов? По слову "Р/С" не судьба ему проверить?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |