DataWeave est un langage de programmation utilisé dans MuleSoft pour accéder aux données et les transformer. MuleSoft a publié DataWeave 2.4.0 pour Mule Runtime 4.4.
Dans DataWeave, les fonctions sont empaquetées dans un module et nous pouvons importer le module dans nos scripts DataWeave pour utiliser la fonction. L’un de ces modules est Strings (dw::core::Strings), qui contient des fonctions utiles lors de l’utilisation de Strings. Dans DataWeave version 2.4.0, MuleSoft a ajouté de nouvelles fonctions dans le module String. Dans ce blog, nous verrons certaines de ces fonctions nouvellement ajoutées et comment nous pouvons les utiliser.
1. effondrer
Cette fonction est utilisée pour réduire ou diviser la chaîne en sous-chaînes de caractères égaux.
Remarque : l’espace vide ( » « ) est traité comme un caractère. Plus d’une occurrence continue de n’importe quel caractère serait traitée comme une seule sous-chaîne. Par exemple, dans le mot accès, les caractères c et s ont 2 occurrences.
Exemple:
Script DataWeave :
%dw 2.0
import collapse from dw::core::Strings
output application/json
---
{
"Output1" : collapse("This is a test"),
"Output2" : collapse("access")
}
Sortir:
{
"Output1": [
"T",
"h",
"i",
"s",
" ",
"i",
"s",
" ",
"a",
" ",
"t",
"e",
"s",
"t"
],
"Output2": [
"a",
"cc",
"e",
"ss"
]
}
2. compterCaractèresPar
Cette fonction parcourt chaque caractère et compte le nombre de fois où la valeur de l’expression est vraie.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
"StringLength" : sizeOf("Address is 123-ABC Street"),
"Alphabet Count" : "Address is 123-ABC Street" countCharactersBy isAlpha($),
"Number Count" : "Address is 123-ABC Street" countCharactersBy isNumeric($),
"AplhaNumberic Count" : "Address is 123-ABC Street" countCharactersBy isAlphanumeric($),
"Whitespace Count" : "Address is 123-ABC Street" countCharactersBy isWhitespace($)
}
Sortir:
{
"StringLength": 25,
"Alphabet Count": 18,
"Number Count": 3,
"AplhaNumberic Count": 21,
"Whitespace Count": 3
}
3. countCorrespondances
Cette fonction compte le nombre de fois qu’un motif apparaît dans une chaîne.
Exemple:
Script de tissage de données :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
"Output1" : "Dataweave is fun, Dataweave is interesting!" countMatches "is",
}
Sortir:
Output :
{
"Output1": 2
}
4. etrèsCaractère
Cette fonction vérifie si l’expression DataWeave donnée est valide pour chaque caractère d’une chaîne et renvoie une valeur booléenne.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
Output1 : "THIS IS UPPER CASE" everyCharacter $ == " " or isUpperCase($),
Output2 : "THIS IS NUMBER 123" everyCharacter $ == " " or isUpperCase($)
}
Sortir:
{
"Output1": true,
"Output2": false
}
5. d’abord
Cette fonction renvoie les n premiers caractères de la chaîne. Si la valeur de m est égal ou supérieur au nombre de caractères de la chaîne, la fonction renvoie la chaîne entière.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
"Output1" : "Avengers Assemble!" first 8,
"Output2" : "Avengers Assemble!" first 80
}
Sortir:
{
"Output1": "Avengers",
"Output2": "Avengers Assemble!"
}
6. dernier
Cette fonction renvoie les n derniers caractères de la chaîne. Si la valeur de n est supérieure ou égale à la longueur de la chaîne, la chaîne entière est renvoyée.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
"Output1" : "I am Ironman" last 7,
"Output2" : "I am Ironman" last 70
}
Sortir:
{
"Output1": "Ironman",
"Output2": "I am Ironman"
}
7. lignes
Cette fonction prend String en entrée et renvoie un tableau.
Remarque : n dans la chaîne fait référence à une nouvelle ligne. Ainsi, l’occurrence de n entraîne l’élément suivant du tableau.
Exemple:
Script DataWeave :
%dw 2.0
import lines from dw::core::Strings
output application/json
---
{
output1 : lines("This is a sample String"),
output2 : lines("This is an examplen which has many linesn like this")
}
Sortir:
{
"output1": [
"This is a sample String"
],
"output2": [
"This is an example",
" which has many lines",
" like this"
]
}
8. mapString
Cette fonction applique une expression à chaque caractère d’une chaîne.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
output1: ("_ is fun and _ is interesting") mapString if ($ == "_") "Dataweave" else $,
output2 : ("Password") mapString '*'
}
Sortir:
{
"output1": "Dataweave is fun and Dataweave is interesting",
"output2": "********"
}
9. renlever
Cette fonction supprime toutes les occurrences d’un modèle spécifié d’une chaîne.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
output1 : "This is a sample String" remove "s"
}
Sortir:
{
"output1": "Thi i a ample String"
}
10. remplacerTous
Cette fonction prend une chaîne et remplace toutes les sous-chaînes correspondantes par la chaîne de remplacement spécifiée.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
Output1 : replaceAll("I am Batman", "Batman" , "Ironman"),
Output2 : replaceAll("aaa aaaaa" , "aa" , "A"),
Output3 : replaceAll("Dataweave is tricky", "tricky" , "fun"),
}
Sortir:
{
"output1": "I am Ironman",
"output2": "Aa AAa",
"output3": "Dataweave is fun",
}
11. inverser
Cette fonction est utilisée pour inverser la séquence de caractères dans une chaîne.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
Output1 : reverse("Dataweave is fun")
}
Sortir:
{
"Output1": "nuf si evaewataD"
}
12. un personnage
Cette fonction permet de vérifier si une condition est valide pour au moins un des caractères ou espaces vides d’une chaîne.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
outupt1 : "this string has 4 words" someCharacter isNumeric($),
output2 : "is there any character in upper case" someCharacter isUpperCase($)
}
Sortir:
{
"outupt1": true,
"output2": false
}
13. msous-chaîne
Cette fonction est utilisée pour obtenir une sous-chaîne de la chaîne en passant l’index de début et l’index de fin.
Noter: startIndex est inclusif et endIndex est exclusif. Dans l’exemple ci-dessous, 0 est l’index de début et 4 est l’index de fin. Comme l’index de fin est exclusif, c’est pourquoi nous obtenons une sortie des caractères 0 à 3 (c’est-à-dire des données).
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
outupt1 : substring("Dataweave is fun", 0, 4)
}
Sortir:
14. sous-chaînePar
Cette fonction est utilisée pour diviser une chaîne à chaque caractère où l’expression spécifiée renvoie true. Cette fonction prend String en entrée et donne un tableau de sous-chaînes.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
Output1 : "This_is_Sample_Example" substringBy $ =="_",
Output2 : "Fantastic Repetation" substringBy $ =="t"
}
Sortir:
{
"Output1": [
"This",
"is",
"Sample",
"Example"
],
"Output2": [
"Fan",
"as",
"ic Repe",
"a",
"ion"
]
}
15. substringChaque
Cette fonction divise la chaîne donnée en un tableau de sous-chaînes égales d’une longueur spécifiée.
Exemple:
Script DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
output1 : substringEvery("This is a test", 3)
}
Sortir:
{
"output11": [
"Thi",
"s i",
"s a",
" te",
"st"
]
}
16. wcommandes
Cette fonction prend une chaîne en entrée et renvoie un tableau de mots. Il sépare les mots d’une chaîne à l’aide de séparateurs tels que des espaces, des nouvelles lignes (n) et des tabulations (t).
Exemple:
Expression DataWeave :
%dw 2.0
import * from dw::core::Strings
output application/json
---
{
output1 : words("Dataweave is interesting"),
output2 : words("Dataweavenisnfun"),
output3 : words("DotyoutliketDataweave?")
}
Sortir:
{
"output1": [
"Dataweave",
"is",
"interesting"
],
"output2": [
"Dataweave",
"is",
"fun"
],
"output3": [
"Do",
"you",
"like",
"Dataweave?"
]
}
Nous connaissons maintenant ces fonctions de chaîne DataWeave nouvellement ajoutées. Pour plus de détails sur les fonctions de chaîne DataWeave, veuillez consulter la documentation Mulesoft ici.