This XQuery Module contains functions for string operations and computations.
Conventions
All functions and errors in this module and errors are assigned to the http://basex.org/modules/string
namespace, which is statically bound to the string
prefix.
Computations
string:levenshtein
Signature
|
string:levenshtein(
$string1 as xs:string,
$string2 as xs:string
) as xs:double
|
Summary
|
Computes the Damerau-Levenshtein Distance for two strings and returns a double value (0.0 - 1.0 ). The returned value is computed as follows:
1.0 – distance / max(length of strings)
1.0 is returned if the strings are equal; 0.0 is returned if the strings are too different.
|
Examples
|
string:levenshtein("flower", "flower") returns 1
string:levenshtein("flower", "lewes") returns 0.5
- In the following query, the input is first normalized (words are stemmed, converted to lower case, and diacritics are removed). It returns
1 :
let $norm := ft:normalize(?, map { 'stemming': true() })
return string:levenshtein($norm("HOUSES"), $norm("house"))
|
string:soundex
Signature
|
string:soundex(
$string as xs:string
) as xs:string
|
Summary
|
Computes the Soundex value for the specified string. The algorithm can be used to find and index English words with similar pronouncation.
|
Examples
|
string:soundex("Michael") returns M240
string:soundex("OBrien") = string:soundex("O'Brien") returns true
|
string:cologne-phonetic
Signature
|
string:cologne-phonetic(
$string as xs:string
) as xs:string
|
Summary
|
Computes the Kölner Phonetik value for the specified string. Similar to Soundex, the algorithm is used to find similarly pronounced words, but for the German language. As the first returned digit can be 0 , the value is returned as string.
|
Examples
|
string:cologne-phonetic("Michael") returns 645
every $s in ("Mayr", "Maier", "Meier") satisfies string:cologne-phonetic($s) = "67" returns true
|
Formatting
string:format
Signature
|
string:format(
$pattern as xs:string,
$values... as item()
) as xs:string
|
Summary
|
Returns a formatted string. The remaining $values are incorported into the $pattern , according to Java’s printf syntax.
|
Errors
|
format : The specified format is not valid.
|
Examples
|
string:format("%b", true()) returns true .
string:format("%06d", 256) returns 000256 .
string:format("%e", 1234.5678) returns 1.234568e+03 .
|
string:cr
Signature
|
string:cr() as xs:string
|
Summary
|
Returns a single carriage return character ( ).
|
string:nl
Signature
|
string:nl() as xs:string
|
Summary
|
Returns a single newline character ( ).
|
string:tab
Signature
|
string:tab() as xs:string
|
Summary
|
Returns a single tabulator character (	 ).
|
Changelog
- Version 10.0
The Module was introduced with Version 8.3. Functions were adopted from the obsolete Utility and Output Modules.