|
Нужна помощь в использовании регулярных выражений | ☑ | ||
---|---|---|---|---|
0
Андроны едут
17.05.21
✎
13:59
|
Как помощью регулярных выражений преобразовать строку вида "ТабНомер = 123, Фио = Иванов Иван Иванович, Оклад = 100000" в тело post-запроса.
То есть получить: Данные = "{ | ""ТабНомер"": 123, | ""Фио"": ""Иванов Иван Иванович"", | ""Оклад"": 100000 | }"; |
|||
1
pechkin
17.05.21
✎
14:02
|
но зачем рег выражения?
|
|||
2
Андроны едут
17.05.21
✎
14:08
|
Понятно, что можно кодом. Но хочется. Сам к сожалению своего преклонного возраста осваиваю новое для себя с трудом.
|
|||
3
brainguard
17.05.21
✎
14:11
|
(0) СтрЗаменить плюс фигурные скобки в начало и конец
|
|||
4
brainguard
17.05.21
✎
14:13
|
(3) А, нет. Еще кавычки в Фио
|
|||
5
Андроны едут
17.05.21
✎
14:14
|
(3) одна из проблем - числовые поля нужно показать как есть, а строковые заключить в двойные кавычки
|
|||
6
brainguard
17.05.21
✎
14:16
|
(5) Все равно стрзаменть, но несколько извращено
Фио= заменить на "Фио":" ,Оклад= заменить на ","Оклад": |
|||
7
Андроны едут
17.05.21
✎
14:18
|
нет заранее неизвестны имена реквизитов
|
|||
8
acht
17.05.21
✎
14:18
|
(6) Да чо уж там
СтрЗаменить(Строка, "ТабНомер = 123, Фио = Иванов Иван Иванович, Оклад = 100000", "{ | ""ТабНомер"": 123, | ""Фио"": ""Иванов Иван Иванович"", | ""Оклад"": 100000 | }"); |
|||
9
brainguard
17.05.21
✎
14:18
|
(6) Ну и ТабНомер= заменить на "ТабНомер":
|
|||
10
Kondarat
17.05.21
✎
14:19
|
(0) Что-то смахивает на json. Не?
|
|||
11
brainguard
17.05.21
✎
14:19
|
(8) Вот. Сразу видно умного человека
|
|||
12
Андроны едут
17.05.21
✎
14:20
|
(10) смахивает
|
|||
13
acces969
17.05.21
✎
14:21
|
Хочу посмотреть реализацию регулярных выражений в 1с, чтобы это было лаконично и удобно. Надеюсь здесь увижу пример.
Давно эти регулярки меня мучают) |
|||
14
Kondarat
17.05.21
✎
14:21
|
(12) Тогда все в структуру и ЗаписатьJSON()
|
|||
15
brainguard
17.05.21
✎
14:21
|
(7) Тогда вам парсер JSON нужен.
|
|||
16
brainguard
17.05.21
✎
14:22
|
(14) +++
|
|||
17
ptiz
17.05.21
✎
14:25
|
(0) Как регулярка поймёт, что "Иванов Иван Иванович" - должен быть в кавычках, а 10000 - нет?
Обычный JSON. На входе должно быть типизировано. |
|||
18
Андроны едут
17.05.21
✎
14:25
|
(13) вот предыдущая тема Разложить строку в массив подстрок с помощью регулярных выражений в частном случае.
В ней TormozIT красиво решил мою хотелку. Жду когда он появится)) |
|||
19
Андроны едут
17.05.21
✎
14:26
|
(17) легко - там только цифры
|
|||
20
Почему 1С
17.05.21
✎
14:59
|
(18) Так он тебе не через регулярные выражения решил
|
|||
21
Кирпич
17.05.21
✎
14:59
|
Не нужны тут регулярки. СтрРазделить и собрать чо надо
|
|||
22
pechkin
17.05.21
✎
15:00
|
(18) там разложить, а тут заменить
|
|||
23
Андроны едут
17.05.21
✎
15:07
|
(20) я функцию себе сделал исходя из его решения:
Функция РазложитьВерблюжьюНотацию(Вход) RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.IgnoreCase = Ложь;//Игнорировать регистр RegExp.Global = Истина;//Поиск всех вхождений шаблона RegExp.MultiLine = Ложь;//Многострочный режим RegExp.Pattern = "([^^])([А-ЯЁ]+)"; Выход = Нрег(RegExp.Replace(Вход,"$1 $2")); Возврат Врег(Лев(Выход,1))+Сред(Выход,2); КонецФункции |
|||
24
Почему 1С
17.05.21
✎
15:24
|
Функция РазложитьВерблюжьюНотацию(Вход)
RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.IgnoreCase = Ложь;//Игнорировать регистр RegExp.Global = Истина;//Поиск всех вхождений шаблона RegExp.MultiLine = Ложь;//Многострочный режим RegExp.Pattern = "ТабНомер = (\d+), Фио = ([^,]+), Оклад = (\d+)"; Выход = Нрег(RegExp.Replace(Вход,"Данные = "{ | ""ТабНомер"": $1, | ""Фио"": ""$2"", | ""Оклад"": $3 | }";")); Возврат Выход; КонецФункции |
|||
25
Гений 1С
гуру
17.05.21
✎
17:13
|
(0) может мой опыт поможет? https://geniy1s.ru/najti-v-naimenovanii-czvet-i-razmer/
|
|||
26
polosov
17.05.21
✎
17:52
|
(24)Я бы чуть апгрейднул до: "ТабНомер = (\d+),\s+Фио = ([^,]+),\s+Оклад = (\d+)"
|
|||
27
mistеr
17.05.21
✎
18:33
|
(5) Лол, а где числовые, где строковые, известно?
|
|||
28
mistеr
17.05.21
✎
18:34
|
(27) -> (7)
|
|||
29
ДедМорроз
17.05.21
✎
21:14
|
Регулярка может в данной задаче только помочь отделить строку от числа,т.к.в исходнике кавычек не поставили.остальное,лучше кодом,т.к.все зависит от положения кавычек и скобок.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |