Fonctions chaînes de caractères

Lorsque vous utilisez des fonctions de manipulation de chaînes de caractères supportées par FME Workbench, utilisez les instructions suivantes pour échapper les virgules (,) et les double quotes (") au sein d'un chaîne.

  • Si un paramètre d'entrée de type chaîne de caractères contient des virgules, placer la chaîne entière entre guillemets. Par exemple, @FindString(@Value(_src), "2,3")
  • Si un paramètre d'entrée de type chaîne de caractères (string) commence et/ou se termine par des guillemets doubles, mettez toute la chaîne entre guillemets doubles et échappez tous les autres guillemets doubles en les faisant précéder d'une barre oblique inverse (\"). Par exemple, @FindString(@Value(_src), ""Il a dit \"Wow!\""). Si un paramètre d'entrée de type chaîne ne commence et/ou ne se termine pas par des guillemets doubles, mais contient des guillemets doubles ailleurs dans la chaîne, il n'est pas nécessaire de les échapper.

ConvertEncoding(dstEncoding,string[,caseSensitive={TRUE|FALSE}])

Encode la chaîne spécifiée par string dans l'encodage désiré spécifié par dstEncoding. Si string est Null, il est défini par l'encodage désiré mais la valeur de sortie est Null. Si caseSensitive est FALSE (par défaut), l'encodage original (source) de la chaîne string n'est pas pris en compte ; c'est-à-dire que la chaîne est étiquetée avec le nouvel encodage sans aucune modification de la chaîne. Si caseSensitive=TRUE, la chaîne de caractères source est convertie dans l'encodage souhaité en fonction de l'encodage source.

Pour obtenir une liste des valeurs d'encodage valides pour dstEncoding, ajoutez temporairement le Transformer équivalent AttributeEncoder à votre traitement, ouvrez le dialogue des paramètres du Transformer et ouvrez la liste déroulante Encodage de destination. Les valeurs valides sont entre parenthèses (par exemple, utf-8).

FindRegularExpression(string,regExp[,startIdx][,captureNum][,matchNum][,caseSensitive={TRUE|FALSE}])

Renvoie l'indice dans la chaîne de caractères string commençant à startIdx qui correspond à regExp , ou -1 si la chaîne n'est pas trouvée. Si startIdx n'est pas spécifié, la recherche commence à l'indice 0. Si captureNum=0 (par défaut), l'intégralité de l'index correspondant est retournée ; sinon, la capture entre parenthèses spécifiée est retournée. Si matchNum=0 (par défaut), FindRegularExpression() renvoie la première correspondance trouvée. Si matchNum > 0, la recherche est répétée matchNum fois, en commençant chaque fois la recherche au caractère suivant le premier caractère de la correspondance précédente. Si caseSensitive=FALSE, la recherche n'est pas sensible à la casse. Si TRUE, la recherche est sensible à la casse.

Transformer équivalent : StringSearcher

Exemples

@FindRegularExpression(open,e) renvoie 2.

FindString(string,strToFind[,startIdx][,caseSensitive={TRUE|FALSE}])

Renvoie l'indice dans la chaîne de caractères string commençant à startIdx qui correspond à strToFind , ou -1 si la chaîne n'est pas trouvée. Si startIdx est un nombre entier négatif, FindString() renvoie l'index dans str commençant à startIdx à partir de la fin de la chaîne string, puis correspondant à strToFind en avançant (de gauche à droite). Si startIdx n'est pas spécifié, la recherche commence à l'indice 0. Si caseSensitive=FALSE, la recherche est insensible à la casse. Si TRUE, la recherche est sensible à la casse.

Transformer équivalent : StringSearcher

Format(format,number)

Formate le nombre number spécifié selon le spécificateur de conversion % format, et renvoie la chaîne résultante. Cette fonction appelle la fonction Tcl format pour formater le nombre en créant une chaîne de commande de la forme format {formatStr} {num}. Le caractère % doit précéder format.

Transformer équivalent : StringFormatter

Pour plus d'information : http://www.astro.princeton.edu/~rhl/Tcl-Tk_docs/tcl/format.n.html

Exemples

  • Pour retourner la chaîne 12345.68 à partir de la valeur en virgule flottante 12345.6789 : Format(%.2f,12345.6789)
  • Pour définir une largeur de champ maximale, ajoutez un nombre avant le point décimal. Par exemple, Format(%10.2f,12345.6789) renvoie 12345.68.
  • Pour compléter le côté gauche avec des zéros, ajoutez un zéro après le caractère %. Par exemple, Format(%010.2f,12345.6789) renvoie 0012345.68.
  • Pour ajouter un signe, qu'il soit positif ou négatif, ajoutez un plus après le signe %. Par exemple, Format(%+010.2f,12345.6789) renvoie +012345.68.

FullTitleCase(string)

Retourne une chaîne avec la première lettre de chaque mot convertie en majuscule.

Cette fonction ignore les parenthèses si elles se trouvent en début de chaîne ou suivent un espace, et traite les traits d'union (-) comme un caractère blanc.

Transformer équivalent : StringCaseChanger

GetWord(string,index)

Renvoie l'index du mot dans la chaîne de caractères string. Si index est un entier négatif, GetWord() renvoie le mot correspondant au numéro de l'index à partir de la fin de la chaîne string. S'il n'y a pas de mot à l'index, une chaîne string vide est retournée. Les mots de la chaîne string doivent être délimités par des espaces vides (espace, tabulation, retour chariot, et autres).

Left(string,numChars)

Retourne une sous-chaîne qui contient le nombre de caractère numChars le plus à gauche de string.

LowerCase(string)

Renvoie une chaîne de caractères avec toutes les lettres de string converties en minuscules.

Transformer équivalent : StringCaseChanger

PadLeft(string,padLength[,char])

Renvoie la chaîne de caractères d'entrée avec au moins les caractères padLength. Si la chaîne de caractères string en entrée n'a pas la longueur padLength, elle est complétée par un préfixe à cette longueur avec le caractère char spécifié. Si aucun caractère char n'est spécifié, un espace est utilisé.

Transformer équivalent : StringPadder

PadRight(string,padLength[,char])

Renvoie la chaîne de caractères d'entrée avec au moins les caractères padLength. Si la chaîne de caractères string en entrée n'a pas la longueur padLength, elle est complétée par un suffixe à cette longueur avec le caractère char spécifié . Si aucun caractère char n'est spécifié, un espace est utilisé.

Transformer équivalent : StringPadder

ReplaceRegularExpression(string,regExp,after[,caseSensitive={TRUE|FALSE}])

Renvoie une chaîne dans laquelle toutes les séquences de caractères qui correspondent à regExp sont remplacées par after. Si caseSensitive=FALSE, la recherche est insensible à la casse. Si TRUE, la recherche est sensible à la casse. Si aucune correspondance n'est trouvée, la chaîne string est renvoyée.

Note  Si un argument contient des virgules ou des parenthèses, placez-le entre guillemets. Par exemple : @ReplaceRegEx(@Value(string1),"[^\,](.*)",\1)

Transformer équivalent : StringReplacer

ReplaceString(string,before,after[,caseSensitive={TRUE|FALSE}])

Renvoie une chaîne de caractères string dans laquelle chaque instance de before est remplacée par after. Si caseSensitive=FALSE, la recherche est insensible à la casse. Si TRUE, la recherche est sensible à la casse.

Transformer équivalent : StringReplacer

Right(string,numChars)

Retourne une sous-chaîne qui contient le nombre de caractère numChars le plus à droite de string.

StringLength(string)

Retourne la longueur de la chaîne.

Transformer équivalent : StringLengthCalculator

Substring(string,startIdx[,numChars])

Renvoie une sous-chaîne de caractères string commençant à startIdx et comprenant un nombre numChars de caractères.Si startIdx est un nombre entier négatif, Substring() renvoie une sous-chaîne de caractères string, commençant à startIdx à partir de la fin de la chaîne string en reculant, et incluant un nombre numChars de caractères en comptant en avant (de gauche à droite). Si numChars n'est pas spécifié, la sous-chaîne string commence à startIdx et va jusqu'à la fin de la chaîne. Si startIdx est supérieur à la longueur de la chaîne string, une chaîne vide est renvoyée.

SubstringRegularExpression(string,regExp[,startIdx][,captureNum][,matchNum][,caseSensitive={TRUE|FALSE}])

Renvoie une sous-chaîne de la chaîne string qui correspond à regExp, à partir de startIdx (ou, si startIdx est un entier négatif, à partir de startIdx caractères de la fin de la chaîne string). Si captureNum=0 (par défaut), l'intégralité de la sous-chaîne correspondante est renvoyée ; sinon, la capture entre parenthèses spécifiée est renvoyée. Si matchNum=0 (par défaut), SubstringRegularExpression() renvoie la première correspondance trouvée. Si matchNum > 0, la recherche est répétée matchNum fois, en commençant chaque fois la recherche au caractère suivant le premier caractère de la correspondance précédente. Si caseSensitive=TRUE, les lettres ne correspondent que si elles sont toutes deux en majuscules ou en minuscules. Si FALSE, elles correspondent indépendamment de leur casse.

Si aucune correspondance n'est trouvée, null est retourné.

TitleCase(string)

Retourne une chaîne avec le premier caractère dans string converti dans la casse Unicode en majuscule et le reste de la chaîne en minuscule.

Transformer équivalent : StringCaseChanger

Trim(string[,chars])

Renvoie une chaîne de caractères dans laquelle les premiers caractères de la chaîne qui correspondent aux premiers caractères de chars, sont supprimés, et les derniers caractères de chaîne qui correspondent aux derniers caractères de chars sont supprimés. Si chars n'est pas spécifié, les espaces blancs de début et de fin (tabulation, espace, retour chariot) sont supprimés.

Exemples

@Trim(Hello World!,Hed!) retourne llo Worl.

TrimLeft(string[,chars])

Renvoie une chaîne de caractères dans laquelle les premiers caractères de la chaîne qui correspondent aux caractères indiqués dans chars sont supprimés. Si chars n'est pas spécifié, seuls les espaces blancs (tabulation, espace, retour chariot) sont supprimés.

Exemples

@TrimLeft(dbo.borat2,dbo.) retourne rat2.

TrimRight(string[,chars])

Renvoie une chaîne de caractères dans laquelle les derniers caractères de la chaîne qui correspondent aux caractères indiqués dans chars sont supprimés. Si chars n'est pas spécifié, seuls les espaces blancs (tabulation, espace, retour chariot) sont supprimés.

Exemples

@TrimRight(dbo.balconySand.dbo,dbo.) retourne dbo.balconySan.

UpperCase(string)

Renvoie une chaîne de caractères (string) avec toutes les lettres de la chaîne converties en majuscules.

Transformer équivalent : StringCaseChanger

WordCount(string)

Renvoie le nombre de mots dans la chaîne de caractères string. Les mots sont délimités par des espaces vides (espace, tabulation, retour chariot, et autres).

Fonctions dépréciées

FindRegEx(str,regExp,[startIdx],[caseSensitive],[caretMode]) - Déprécié

Note  Remplacé par @FindRegularExpression()

Renvoie l'indice dans la chaîne de caractères str commençant à startIdx qui correspond à regExp, ou -1 si la chaîne n'est pas trouvée. Si startIdx n'est pas spécifié, la recherche commence à l'indice 0. Si caseSensitive est FALSE, la recherche est insensible à la casse. Sinon, la recherche est sensible à la casse.

Le paramètre caretMode peut être utilisé pour indiquer si ^ doit correspondre à l'index 0 ou à l'offset. Si TRUE, le caret commence à 0. Si FALSE, le caret correspond au décalage.

Transformer équivalent : StringSearcher

ReplaceRegEx(str,regExp,newStr,[caseSensitive]) - Déprécié

Note  Remplacé par @ReplaceRegularExpression()

Renvoie une chaîne dans laquelle toutes les séquences de caractères qui correspondent à regExp sont remplacées par newStr. Si caseSensitive est FALSE, la recherche est insensible à la casse. Sinon, la recherche est sensible à la casse.

Note  Si un argument contient des virgules ou des parenthèses, placez-le entre guillemets. Par exemple : @ReplaceRegEx(@Value(string1),"[^\,](.*)",\1)

Transformer équivalent : StringReplacer