Платформа 3V/Выражение/Расчет выражений/Работа со строками: различия между версиями
< Платформа 3V | Выражение | Расчет выражений
Перейти к навигации
Перейти к поиску
A.griva (обсуждение | вклад) |
|||
(не показано 6 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Работа со строками}} | {{DISPLAYTITLE:Работа со строками}} | ||
== Общие функции работы со строками == | == Общие функции работы со строками == | ||
− | * Concatenate([разделитель:строка], [строка 1], ..., [строка N]) - объединение строк | + | * Concatenate([разделитель:строка], [строка 1], ..., [строка N]) - объединение строк. <br> |
+ | ''Важно!'' При использовании данной функции в формах данных с множественной отметкой проверьте наличие флага "allowMultipleValues": true у операнда<br> | ||
* IndexOf([строка, в которой ищем], [строка, которую ищем]) - возвращает индекс первого символа строки, которую ищем или -1, если не найдена | * IndexOf([строка, в которой ищем], [строка, которую ищем]) - возвращает индекс первого символа строки, которую ищем или -1, если не найдена | ||
* Length([строка]) - возвращает длину строки | * Length([строка]) - возвращает длину строки | ||
Строка 11: | Строка 12: | ||
* Split([0], [1]) - Разбивает строку на коллекцию строковых элементов через разделитель | * Split([0], [1]) - Разбивает строку на коллекцию строковых элементов через разделитель | ||
* Join([0], [1]) - Объединяет коллекцию через разделитель в строку | * Join([0], [1]) - Объединяет коллекцию через разделитель в строку | ||
+ | |||
+ | <div align="right">'''''Реализовано в [[Описание_релизов/0.40.0 | версии 0.40]]'''''</div> | ||
+ | |||
+ | '''Replace()''' | ||
+ | Заменять заданный текст можно с помощью функции Replace(<Source_String>, <Find_String>, <Replaced_String>), где | ||
+ | *Source_String - текст в котором требуется заменить строку | ||
+ | *Find_String - строка, которую требуется заменить | ||
+ | *Replaced_String - строка, которой будет заменена Find_String | ||
+ | <div style="width:700px;> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "expression": "Replace('хо-хо', 'о', 'е')" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | |||
+ | '''Trim()''' | ||
+ | Для того, чтобы убрать пробелы в начале и в конце строки следует использовать функцию Trim(<Source_String>), где | ||
+ | *Source_String - строка, в которой обрезаются пробелы в начале и в конце | ||
+ | <div style="width:700px;> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "expression": "Trim(' пробелы между словами будут, а по краям нет ')" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | |||
+ | <div align="right">'''''Реализовано в [[Описание_релизов/0.42.0_-_Уильям_Уоллес | версии 0.42]]'''''</div> | ||
+ | |||
+ | '''JPath()''' | ||
+ | Для того, чтобы вывести требуемые свойства из строки вида json следует использовать функцию JPath(<json>, <jpath>, <expression>), где | ||
+ | *json - объект json, из которого следует втянуть значения | ||
+ | *jpath - свойства json, значения которых будут выведены в результате. Задаются в строковом виде, либо в коллекции строк | ||
+ | *expression - объект json, из которого следует втянуть значения | ||
+ | <div style="width:700px;> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "expression": "JPath(ToString([0]), '$.rhumbs[*].'+[1],true)", | ||
+ | "operandValues": [ | ||
+ | { | ||
+ | "id": 0, | ||
+ | "value": "{'startPoint':[58.37194012413617,60.662785146257235],'skip':1,'rhumbs':[{'rhumb':'NW','angle':75,'distance':100},{'rhumb':'SW','angle':0,'distance':51},{'rhumb':'SW','angle':56,'distance':128},{'rhumb':'NW','angle':47,'distance':253},{'rhumb':'SE','angle':81,'distance':299}],'turningPointsIds':['7917fe71-372c-41d0-8ffc-6d97931e5a4e','24e963a2-797f-4060-8e6d-07b002e97b8b','88161be8-860e-4b48-ab3e-9c19dc51f948','5345d652-d0e6-45a1-b846-ee1d5add7378','cedbbd41-c214-448e-b07f-5f422ffff463'],'bindLineId':'cf1fa88b-669f-404f-9490-5488d2b980aa'}" | ||
+ | }, | ||
+ | { | ||
+ | "id": 1, | ||
+ | "value": "['rhumb', 'angle']" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | |||
+ | |||
+ | Результат: | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | [ | ||
+ | "NW", | ||
+ | "SW", | ||
+ | "SW", | ||
+ | "NW", | ||
+ | "SE" | ||
+ | ] | ||
+ | </syntaxhighlight> |
Текущая версия на 12:21, 15 июня 2022
Общие функции работы со строками
- Concatenate([разделитель:строка], [строка 1], ..., [строка N]) - объединение строк.
Важно! При использовании данной функции в формах данных с множественной отметкой проверьте наличие флага "allowMultipleValues": true у операнда
- IndexOf([строка, в которой ищем], [строка, которую ищем]) - возвращает индекс первого символа строки, которую ищем или -1, если не найдена
- Length([строка]) - возвращает длину строки
- Letter([целое число - индекс латинской буквы]) - возвращает букву от A до Z
- Padleft([строка], [ожидаемая длина строки], [символ "замощения" слева])
- Substring([строка], [начальный индекс, начиная с 0], [кол-во символов])
Объединение и разбиение строк
- Split([0], [1]) - Разбивает строку на коллекцию строковых элементов через разделитель
- Join([0], [1]) - Объединяет коллекцию через разделитель в строку
Реализовано в версии 0.40
Replace() Заменять заданный текст можно с помощью функции Replace(<Source_String>, <Find_String>, <Replaced_String>), где
- Source_String - текст в котором требуется заменить строку
- Find_String - строка, которую требуется заменить
- Replaced_String - строка, которой будет заменена Find_String
1 {
2 "expression": "Replace('хо-хо', 'о', 'е')"
3 }
Trim() Для того, чтобы убрать пробелы в начале и в конце строки следует использовать функцию Trim(<Source_String>), где
- Source_String - строка, в которой обрезаются пробелы в начале и в конце
1 {
2 "expression": "Trim(' пробелы между словами будут, а по краям нет ')"
3 }
Реализовано в версии 0.42
JPath() Для того, чтобы вывести требуемые свойства из строки вида json следует использовать функцию JPath(<json>, <jpath>, <expression>), где
- json - объект json, из которого следует втянуть значения
- jpath - свойства json, значения которых будут выведены в результате. Задаются в строковом виде, либо в коллекции строк
- expression - объект json, из которого следует втянуть значения
1 {
2 "expression": "JPath(ToString([0]), '$.rhumbs[*].'+[1],true)",
3 "operandValues": [
4 {
5 "id": 0,
6 "value": "{'startPoint':[58.37194012413617,60.662785146257235],'skip':1,'rhumbs':[{'rhumb':'NW','angle':75,'distance':100},{'rhumb':'SW','angle':0,'distance':51},{'rhumb':'SW','angle':56,'distance':128},{'rhumb':'NW','angle':47,'distance':253},{'rhumb':'SE','angle':81,'distance':299}],'turningPointsIds':['7917fe71-372c-41d0-8ffc-6d97931e5a4e','24e963a2-797f-4060-8e6d-07b002e97b8b','88161be8-860e-4b48-ab3e-9c19dc51f948','5345d652-d0e6-45a1-b846-ee1d5add7378','cedbbd41-c214-448e-b07f-5f422ffff463'],'bindLineId':'cf1fa88b-669f-404f-9490-5488d2b980aa'}"
7 },
8 {
9 "id": 1,
10 "value": "['rhumb', 'angle']"
11 }
12 ]
13 }
Результат:
1 [
2 "NW",
3 "SW",
4 "SW",
5 "NW",
6 "SE"
7 ]