You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.

Learn more about text functions CONCATENATE, JOIN, MATCH, FIND, FIRST, LAST, LENGTH, UPPERCASE, LOWERCASE, CAPITALIZE, TRIM, INDEXOF, LASTINDEXOF, SUBSTRING, SUBSTRING BEFORE, SUBSTRING AFTER, SPLIT, REPLACE, EQUALS. 


Be careful with patterns

MATCH, FIND, SPLIT and REPLACE use a regular expression as one of their parameters. These parameters are not intended to be filled with values that could have been typed by a user, because a user could craft a regular expression that causes unexpected behavior.

Overview

FunctionDescription
CONCATENATEUse the '+' (plus) operator to concatenate strings or a combination of strings and other type values to produce a single string value.

JOIN

Joins a series of values into one string, separated with a character of your choice.
MATCHCompares a string pattern to another string and returns TRUE if the string exactly matches the pattern, and otherwise FALSE. The MATCH function is case-sensitive.
FINDLooks for a string pattern within another string and returns the first matching characters. The function is case-sensitive.
FIRSTReturns the first character(s) of a string, based on the number of characters you specify.
LASTReturns the last character(s) of a string, based on the number of characters you specify.
LENGTHReturns the length of a string. 
UPPERCASEReturns a string with all characters in uppercase. 
LOWERCASEReturns a string with all characters in lowercase. 
CAPITALIZEReturns a string with the first character uppercased. 
TRIMStrips the leading and trailing spaces from a string. 
INDEXOFReturns the index of the first occurrence of a specified substring in a string.
LASTINDEXOFReturns the index of the last occurrence of a specified substring in a string. 
SUBSTRINGReturns the substring of a given string starting from the index provided and ending at the end index if provided, or the end of the string. 
SUBSTRING BEFOREReturns the start of a given string before the first occurrence of substring, or an empty string if substring is not found. 
SUBSTRING AFTERReturns the end of a given string after the first occurrence of substring, or an empty string if substring is not found. 
SPLITReturns a multivalued string attribute containing every substring that is delimited by the given pattern. 
REPLACEReplaces every occurrence of a string pattern within another string with a provided replacement string. The function is case-sensitive.
EQUALSCompares two strings and returns TRUE if and only if they are equal. This function is case sensitive.

Go here for more info on the Text Substitution Language (TSL) documentation

Functions

CONCATENATE


Use the '+' (plus) operator to concatenate strings or a combination of strings and other type values to produce a single string value.


Syntax

string1 + string2 + ... + value1 + ...



Inputs
  • string1 - The first string that you want to concatenate.
  • string2 - The second string that you want to concatenate.
  • value1 - A value of some type of number, date or boolean that you want to add to the new string value.


Return type

  • string


Examples

ExpressionResultType
12 + " kilometers""12 kilometers"String
"This statement is " + TRUE + ".""This statement is true."String
"I was born on " + Me.birthDateAndTime + ".""I was born on Tue Dec 01 23:00:45 CET 1970."String
( UPPERCASE "hello" ) + ( LOWERCASE " WORLD" )"HELLO world"String
UPPERCASE( "hello" ) + LOWERCASE( " WORLD" )"HELLO WORLD"String

Suppose

Person.FirstName = "Carl"

Person.LastName = 

then Person.FirstName + Person.LastName

? (UNKNOWN)String


Note the correct use of parenthesis in combination with concatenation, see UPPERCASE and LOWERCASE syntax.

There exists a STR_CONCAT ( string , string ) function in the expression language. As it can only concatenate two strings, and is much longer in typing, we advise to use above way for concatenating strings.



JOIN


Joins a series of values into one string, separated with a character of your choice.


Syntax

JOIN ( argument1 , argument2 , ... , separator )



Inputs
  • argument1, argument2 - Attributes or expressions that contain the values that will be joint to a single string. JOIN works for all base types, even multivalued.
  • separator - A string value that will be used as separator symbol.


Return type

  • string

An UNKNOWN value will be represented as an empty entry in the result string.

The CONCAT function is identical to the JOIN function, except for handling of UNKNOWN.

Examples

Suppose you have a model containing the following attributes.


AttributeBasetypeValue
Person.namestring"John"
Person.date_of_birthdate01-01-1995
Person.family_namestring
ExpressionResultType
JOIN ( Person.name , Person.date_of_birth , ";" )"John;Sun Jan 01 00:00:00 CET 1995"String
JOIN ( Person.name , Person.name , "@" )"John@John"String
JOIN ( Person.name , Person.family_name , YEARS BETWEEN Person.date_of_birth AND DATE ( 2015 , 01 , 01 ) , ";" )"John;;20"String


Back to Top


MATCH


Compares a string pattern to another string and returns TRUE if the string exactly matches the pattern, and otherwise FALSE. The MATCH function is case-sensitive.


Syntax

MATCH ( pattern , string )


Inputs

  • pattern - An attribute of base type string or a string value. String must be a valid regular expression. The regular expressions used in several Blueriq Encore functions are common Java 1.4 expressions. For a complete documentation we refer to the online java documentation.
  • string - String value, attribute of base type string or an expression that results in a string value.


Return type

  • boolean

Examples

Entity.attributeValueType
File.name"Thisfile_1.doc"String
ExpressionResultType
MATCH ( "Thisfile_1.doc" , File.name )TRUEboolean
MATCH ( File.name , "Thisfile_1.doc" )TRUEboolean
MATCH ( " Thisfile_1.doc" , File.name )FALSEboolean
MATCH ( "thisfile_1.doc" , File.name )FALSEboolean
MATCH ( "[A-Z]hisfile_1.doc" , File.name )TRUEboolean
MATCH ( "[a-z]hisfile_1.doc" , File.name )FALSEboolean
MATCH ( "Thisfile_[0-9].doc" , File.name )TRUEboolean
MATCH ( ".............." , File.name )TRUEboolean
MATCH ( ".*" , File.name )TRUEboolean
MATCH ( "**" , "**" )Error"**" is not a valid regular expression


Back to Top


FIND


Looks for a string pattern within another string and returns the first matching characters. The function is case-sensitive.


Syntax

FIND ( pattern , string )
FIND ( pattern , string , startIndex )



Inputs
  • pattern - An attribute of base type string or a string value. String must be a valid regular expression. The regular expressions used in several Blueriq Encore functions are common Java 1.4 expressions. For a complete documentation we refer to the online java documentation.
  • string - An attribute of base type string or an expression that results in a string.
  • startIndex - A positive integer value indicating at which character of the string the search should start (inclusive). This can be either an attribute of base type integer, an expression that results in an integer or a constant integer value. The first character starts at index 0.


Return type

  • string


Examples

Entity.attributeValueType
File.name"Thisfile_1.doc"String
ExpressionResultType
FIND ( "_[1-5]" , File.name )"_1"String
FIND ( "File" , File.name )UNKNOWNString
FIND ( "el" , "Hello" )"el"String
FIND ( "el" , "Hello" , 2 )UNKNOWNString
FIND ( "eo" , "Hello" )UNKNOWNString
FIND ( "\s[a-zA-Z]+" , "Hello world example" )"world"String
FIND ( "\s[a-zA-Z]+" , "Hello world example" , 6 )"example"String


Back to Top

 


FIRST


Returns the first character(s) of a string, based on the number of characters you specify.


Syntax

FIRST integer CHARACTERS OF string
FIRST CHARACTER OF string



Inputs
  • integer - A positive integer value. This can be either an attribute of base type integer, an expression that results in an integer or a constant integer value. FIRST CHARACTER OF can be used to retrieve only the first character of the string.
  • string - An attribute of base type string, an expression that results in a string or a constant string value.


Return type

  • string

If you prefer a functional syntax, you can use the STR_FRONT( string, integer ) function. Example: STR_FRONT("Blueriq", 3) = "Blu"

Examples

Entity.attributeValueType
File.name"Thisfile_1.doc"String
File.prefix8Integer
ExpressionAlternative syntaxResultType
FIRST File.prefix CHARACTERS OF File.nameSTR_FRONT( File.name , File.prefix )ThisfileString
FIRST CHARACTER OF File.nameSTR_FRONT( File.name , 1 )TString
FIRST 5 CHARACTERS OF "pieceofcake"STR_FRONT( "pieceofcake" , 5 )pieceString


Back to Top


LAST


Returns the last character(s) of a string, based on the number of characters you specify.


Syntax

LAST integer CHARACTERS OF string
LAST CHARACTER OF string



Inputs

  • integer - A positive integer value. This can be either an attribute of base type integer, an expression that results in an integer or a constant integer value. LAST CHARACTER OF can be used to retrieve only the last character of the string.
  • string - An attribute of base type string, an expression that results in a string or a constant string value.


Return type

  • string

If you prefer a functional syntax, you can use the STR_BACK ( string, integer ) function. Example: STR_BACK("Blueriq", 3) = "riq"


Examples

Entity.attributeValueType
File.name"Thisfile_1.doc"String
File.extension3Integer
ExpressionAlternative syntaxResultType
LAST File.extension CHARACTERS OF File.nameSTR_BACK( File.name , File.extension )"doc"String
LAST CHARACTER OF File.nameSTR_BACK( File.name , 1 )"c"String
LAST 4 CHARACTERS OF "pieceofcake"STR_BACK( "pieceofcake" , 4 )"cake"String


Back to Top

 


LENGTH


Returns the length of a string. 


Syntax

LENGTH ( string )



Inputs

  • string - An attribute of base type string, an expression that results in a string or a constant string value.


Return type

  • integer

Spaces at the start of the end of the string are counted as well, the string is not trimmed.


Example

ExpressionResultType
LENGTH ( "Blueriq" )7Integer
LENGTH ( " Blueriq " )9Integer
LENGTH ( ? )?Integer

Back to Top



UPPERCASE


Returns a string with all characters in uppercase. 


Syntax

UPPERCASE string



Inputs
  • string - An attribute of base type string, an expression that results in a string or a constant string value.

UPPERCASE does not have a functional syntax. This can have unexpected effects on concatenation. UPPERCASE ( "hello" ) + LOWERCASE ( " WORLD" ) is equivalent to UPPERCASE ( ( "hello" ) + LOWERCASE ( " WORLD" ) ). Use ( UPPERCASE string ) syntax to avoid this behaviour.


Return type

  • string


Example

ExpressionResultType
UPPERCASE ( "hello" )"HELLO"String
UPPERCASE "WORLD""WORLD"String
UPPERCASE ( "hello world " )"HELLO WORLD "String
UPPERCASE " hELLo "" HELLO "String
UPPERCASE ( ? )?String
( UPPERCASE "hello" ) + ( LOWERCASE " WORLD" )"HELLO world"String
UPPERCASE ( "hello" ) + LOWERCASE ( " WORLD" )"HELLO WORLD"String


Back to Top



LOWERCASE


Returns a string with all characters in lowercase. 


Syntax

LOWERCASE string



Inputs
  • string - An attribute of base type string, an expression that results in a string or a constant string value.

LOWERCASE does not have a functional syntax. This can have unexpected effects on concatenation. LOWERCASE ( "HELLO" ) + UPPERCASE ( " world" ) is equivalent to LOWERCASE ( ( "HELLO" ) + UPPERCASE ( " world" ) ). Use ( LOWERCASE string ) syntax to avoid this behaviour.



Return type

  • string


Example

ExpressionResultType
LOWERCASE ( "hello" )"hello"String
LOWERCASE "WORLD""world"String
LOWERCASE ( "hello world " )"hello world "String
LOWERCASE " hELLo "" hello "String
LOWERCASE ( ? )?String
( LOWERCASE "HELLO" ) + ( UPPERCASE " world" )"hello WORLD"String
LOWERCASE ( "HELLO" ) + UPPERCASE ( " world" )"hello world"String

 

Back to Top



CAPITALIZE


Returns a string with the first character uppercased. 


Syntax

CAPITALIZE string
CAPITALIZE ( string, lowerTheRest )


Inputs

  • string - An attribute of base type string, an expression that results in a string or a constant string value.
  • lowerTheRest - An attribute of base type boolean, an expression that results in a boolean or a constant boolean value, indicating that the other characters need to be lowercased. This parameter is optional and if it is not supplied, the other characters are left untouched.


Return type

  • string


Example

ExpressionResultType
CAPITALIZE "hello""Hello"String
CAPITALIZE ( "WORLD" )"WORLD"String
CAPITALIZE ( "hello world " )"Hello world "String
CAPITALIZE " hELLo "" hELLo "String
CAPITALIZE TRIM " hELLo ""HELLo"String
CAPITALIZE TRIM LOWERCASE " hELLo ""Hello"String
CAPITALIZE ( "hello" , TRUE )"Hello"String
CAPITALIZE ( "WORLD" , TRUE )"World"String
CAPITALIZE ( "hello world " , TRUE )"Hello world "String
CAPITALIZE ( " hELLo " , TRUE )" hello "String
CAPITALIZE ( TRIM " hELLo " , TRUE )"Hello"String
CAPITALIZE( ? )?String

Back to Top

 


TRIM


Strips the leading and trailing spaces from a string. 


Syntax

TRIM string



Input

  • string - An attribute of base type string, an expression that results in a string or a constant string value.


Return type

  • string


Example

ExpressionResultType
TRIM "Hello""Hello"String
TRIM ( "Hello World" )"Hello World"String
TRIM "   Hello   World   ""Hello   World"String
TRIM ( ? )?String


Back to Top



INDEXOF


Returns the index of the first occurrence of a specified substring in a string.


Syntax

INDEXOF ( string , substring )
INDEXOF ( string , substring , startIndex )


Inputs

  • string - An attribute of base type string, an expression that results in a string or a constant string value.
  • substring - An attribute of base type string, an expression that results in a string or a constant string value.
  • startIndex - A (positive) integer value indicating at which character the search for the substring should start (inclusive). This can be either an attribute of base type integer, an expression that results in an integer or a constant integer value.
    The first character starts at index 0.


Return type

  • integer - the index of the first occurrence of the specified substring or -1 if it is not found


Example

ExpressionResultType
INDEXOF ( "Hello world" , "o" )4Integer
INDEXOF ( "Hello world" , "o" , 5 )7Integer
INDEXOF ( "Hello world" , "a" )-1Integer
INDEXOF ( "Hello world" , "o" , 8 )-1Integer
INDEXOF ( "Hello world" , "o" , -12 )4Integer
INDEXOF ( "Hello world" , "o" , 50 )-1Integer

There is no restriction on the value of startIndex. If it is negative, it has the same effect as if it were zero: this entire string may be searched. If it is greater than the length of this string, it has the same effect as if it were equal to the length of this string: -1 is returned.


Back to Top



LASTINDEXOF


Returns the index of the last occurrence of a specified substring in a string. 


Syntax

LASTINDEXOF ( string , substring )
LASTINDEXOF ( string , substring , startIndex )


Inputs

  • string - An attribute of base type string, an expression that results in a string or a constant string value.
  • substring - An attribute of base type string, an expression that results in a string or a constant string value.
  • startIndex - A (positive) integer value indicating at which character the search for the substring should start (inclusive), searching backwards. This can be either an attribute of base type integer, an expression that results in an integer or a constant integer value.


Return type

  • integer - the index of the last occurrence of the specified substring or -1 if it is not found


Example

ExpressionResultType
LASTINDEXOF ( "Hello world" , "o" )7Integer
LASTINDEXOF ( "Hello world" , "o" , 6 )4Integer
LASTINDEXOF ( "Hello world" , "a" )-1Integer
LASTINDEXOF ( "Hello world" , "o" , 3 )-1Integer
LASTINDEXOF ( "Hello world" , "o" , -12 )-1Integer
LASTINDEXOF ( "Hello world" , "o" , 50 )7Integer

There is no restriction on the value of startIndex. If it is negative, it has the same effect as if it were zero: -1 is returned since there are no characters before character 0. If startIndex is greater than the length of this string, it has the same effect as if it were equal to the length of this string, so the whole string is searched.


Back to Top

 


SUBSTRING


Returns the substring of a given string starting from the index provided and ending at the end index if provided, or the end of the string. 


Syntax

SUBSTRING ( string , startIndex )
SUBSTRING ( string , startIndex , endIndex )


Inputs

  • string - An attribute of base type string, an expression that results in a string or a constant string value.
  • startIndex - A positive integer value indicating at which character the substring should start (inclusive). This can be either an attribute of base type integer, an expression that results in an integer or a constant integer value. The first character starts at index 0.
  • endIndex - A positive integer value indicating at which character the substring should end (exclusive). This can be either an attribute of base type integer, an expression that results in an integer or a constant integer value. The endIndex cannot exceed the length of the string and should be larger than the startIndex.


Return type

  • string


Example

ExpressionResultType
SUBSTRING ( "Hello world" , 1 )"ello world"String
SUBSTRING ( "Hello world" , 0 , 1 )"H"String
SUBSTRING ( "Hello world" , 1 , 5 )"ello"String
SUBSTRING ( "Hello world" , 0 )"Hello world"String
SUBSTRING ( "Hello world" , 0 , LENGTH( "Hello world" ) )"Hello world"String



Back to Top



SUBSTRING BEFORE


Returns the start of a given string before the first occurrence of substring, or an empty string if substring is not found


Syntax

SUBSTRING BEFORE substring IN string
SUBSTRING_BEFORE ( string , substring )


Inputs

  • string - An attribute of base type string, an expression that results in a string or a constant string value.
  • substring - An attribute of base type string, an expression that results in a string or a constant string value.


Return type

  • string


Example

ExpressionResultType
SUBSTRING BEFORE ":" IN "hello:world""hello"String
SUBSTRING_BEFORE ( "hello:world" , ":" )"hello"String

SUBSTRING_BEFORE ( "hello:world:all" , ":" )

"hello"String
SUBSTRING_BEFORE ( "hello:world" , "h" )""String
SUBSTRING BEFORE "a" IN "hello:world"""String
SUBSTRING_BEFORE ( "" , "hello" )""String
SUBSTRING_BEFORE ( "hello" , "" )""String



Back to Top


SUBSTRING AFTER


Returns the end of a given string after the first occurrence of substring, or an empty string if substring is not found. 


Syntax

SUBSTRING AFTER substring IN string
SUBSTRING_AFTER ( string , substring )


Inputs

  • string - An attribute of base type string, an expression that results in a string or a constant string value.
  • substring - An attribute of base type string, an expression that results in a string or a constant string value.


Return type

  • string


Example

ExpressionResultType
SUBSTRING AFTER ":" IN "hello:world""world"String
SUBSTRING_AFTER ( "hello:world:all" , ":" )"world:all"String
SUBSTRING AFTER "a" IN "hello:world"""String
SUBSTRING_AFTER ( "" , "hello" )""String
SUBSTRING_AFTER ( "hello" , "" )"hello"String



Back to Top


SPLIT


Returns a multivalued string attribute containing every substring that is delimited by the given pattern. 


Syntax

SPLIT string ON pattern
SPLIT ( string , pattern )


Inputs

  • string - An attribute of base type string, an expression that results in a string or a constant string value.
  • pattern - An attribute of base type string or a string value. String must be a valid regular expression. The regular expressions used in several Blueriq Encore functions are common Java 1.4 expressions. For a complete documentation we refer to the online java documentation.


Return type

  • string (multivalued)


Example

ExpressionResultType
SPLIT "Hello world" ON "o"[ "Hell" , " w" , "rld" ]String (multivalued)
SPLIT ( "Hello world" , "a" )[ "Hello world" ]String (multivalued)
SPLIT "Hello" ON "o"[ "Hell" ]String (multivalued)
SPLIT ( "ooo" , "o" )[ ]String (multivalued)
SPLIT ( "bot" , "o" )[ "b" , "t" ]String (multivalued)
SPLIT ( "boot" , "o" )[ "b" , "", "t" ]String (multivalued)
SPLIT ( "booot" , "o" )[ "b" , "", "t" ]String (multivalued)
To remove dots from a string in combination with the JOIN function:
JOIN ( SPLIT ( "H.E.L.L.O" , "\.") , "" )"HELLO"String


If you use the SPLIT in a default expression on an multivalued attribute, please note that the result will be stored as collection, meaning that all duplicates will be removed. To illustrate this: suppose we have an attribute Test.Splitted (multivalued), which has the default expression SPLIT ( "H.E.L.L.O" , "\."). The result of the expression JOIN ( Test.Splitted , "" ) = "HELO" instead of "HELLO" as in the last example.


Back to Top

 


REPLACE


Replaces every occurrence of a string pattern within another string with a provided replacement string. The function is case-sensitive.


Syntax

REPLACE pattern IN string WITH replacement
REPLACE ( pattern , string , replacement )



Inputs
  • pattern - An attribute of base type string or a string value. String must be a valid regular expression. The regular expressions used in several Blueriq Encore functions are common Java 1.4 expressions. For a complete documentation we refer to the online java documentation.
  • string - An attribute of base type string or an expression that results in a string.
  • replacement - An attribute of base type string or an expression that results in a string.


Return type

  • string. If the pattern is not found, the original string is returned.


Examples

ExpressionResultType
REPLACE ":" IN  "hello:world:example" WITH " ""hello world example"String
REPLACE ( "o" , "hello world" , "a" )"hella warld"String
REPLACE ( "O" , "hello world" , "a" )"hello world"String
REPLACE "\s" IN "hello world example" WITH """helloworldexample"String
REPLACE ( "\d{2}" , "hello1 world22 example333" , "@" )"hello1 world@ example@3"String
REPLACE ( "" , "hello world" , " " )" h e l l o   w o r l d "String
REPLACE "\s" IN "hello world example" WITH "\s""hello\sworld\sexample"String

The first argument is a pattern (regular expression) and can therefore contain specials like \s for a space. The second and third arguments are strings or expressions, so \s will result in \s.



Back to Top

 


EQUALS


Compares two strings and returns TRUE if and only if they are equal. This function is case sensitive.

Only use this function if you need a case sensitive comparison of two strings. If you want to compare strings case insensitive, use the '=' operator instead.


Syntax

string1 EQUALS string2
EQUALS ( string1 , string2 )


Inputs

  • string1 - An attribute of base type string, an expression that results in a string or a constant string value.
  • string2 - An attribute of base type string, an expression that results in a string or a constant string value.


Return type

  • boolean


Example

ExpressionResultTypeNote
"hello" EQUALS "hello"TRUEboolean
EQUALS ( "hello" , "Hello" )FALSEbooleanFALSE because EQUALS is case sensitive
"hello" EQUALS "hello "FALSEbooleanFALSE because of trailing space
EQUALS ( "" , "" )TRUEboolean


Back to Top