Text replacement - "<syntaxhighlight lang="xquery">" to "<pre lang='xquery'>"
{{Announce|Updated with Version 10:}} Renamed from ''Strings Module'' to ''String Module''. The namespace URI has been updated as well. This [[Module Library|XQuery Module]] contains functions for string operations and computations.
=Conventions=
All functions and errors in this module and errors are assigned to the <code><nowiki>http://basex.org/modules/string</nowiki></code> namespace, which is statically bound to the {{Code|string}} prefix.<br/>
=FunctionsComputations=
==stringsstring:levenshtein==
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|strings<pre>string:levenshtein|( $string1 as xs:string, $string2 as xs:string|) as xs:double}}<br/pre>|-valign="top"
| '''Summary'''
|Computes the [https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance Damerau-Levenshtein Distance] for two strings and returns a double value ({{Code|0.0}} - {{Code|1.0}}). The returned value is computed as follows:<br/>
* <code>1.0</code> – distance / max(length of strings)
* <code>1.0</code> is returned if the strings are equal; <code>0.0</code> is returned if the strings are too different.
* In the following query, the input is first normalized (words are stemmed, converted to lower case, and diacritics are removed). It returns {{Code|1}}:
<syntaxhighlight pre lang="'xquery"'>
let $norm := ft:normalize(?, map { 'stemming': true() })
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|strings<pre>string:soundex|( $string as xs:string|) as xs:string}}<br/pre>|-valign="top"
| '''Summary'''
|Computes the [https://en.wikipedia.org/wiki/Soundex Soundex] value for the specified string. The algorithm can be used to find and index English words with similar pronouncation.
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|strings<pre>string:cologne-phonetic|( $string as xs:string|) as xs:string}}<br/pre>|-valign="top"
| '''Summary'''
|Computes the [https://de.wikipedia.org/wiki/K%C3%B6lner_Phonetik 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 {{Code|0}}, the value is returned as string.
|-valign="top"| '''Examples'''|* <code>string:cologne-phonetic("Michael")</code> returns {{Code|645}}* <code>every $s in ("Mayr", "Maier", "Meier") satisfies string:cologne-phonetic($s) = "67"</code> returns {{Code|true}}|} =Formatting= ==string:format== {| width='100%'|- valign="top"| width='120' | '''Signature'''|<pre>string:format( $pattern as xs:string, $values... as item()) as xs:string</pre>|- valign="top"| '''Summary'''|Returns a formatted string. The remaining {{Code|$values}} are incorported into the {{Code|$pattern}}, according to [https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax Java’s printf syntax].|- valign="top"| '''Errors'''|{{Error|format|#Errors}} The specified format is not valid.|- valign="top"
| '''Examples'''
|
* <code>strings{{Code|string:cologne-phoneticformat("Michael%b", true()</code> )}} returns {{Code|645true}}.* <code>every $s in {{Code|string:format("Mayr%06d", 256)}} returns {{Code|000256}}.* {{Code|string:format("Maier%e", 1234.5678)}} returns {{Code|1.234568e+03}}.|} ==string:cr== {| width='100%'|- valign="top"| width='120' | '''Signature'''|{{Code|'''string:cr()''' as xs:string}}|- valign="top"| '''Summary'''|Returns a single carriage return character ({{Code|&#13;}}).|} ==string:nl== {| width='100%'|- valign="Meiertop"| width='120' | '''Signature'''|{{Code|'''string:nl()''' as xs:string}}|- valign="top"| '''Summary'''|Returns a single newline character ({{Code|&#10;}}) satisfies strings.|} ==string:colognetab== {| width='100%'|-phoneticvalign="top"| width='120' | '''Signature'''|{{Code|'''string:tab($s) ''' as xs:string}}|- valign= "67top"</code> returns | '''Summary'''|Returns a single tabulator character ({{Code|true&#9;}}).
|}
;Version 10.0
* Updated: Renamed from ''Strings Module'' to ''String Module''. The namespace URI has been updated as well.
* Updated: {{Function||string:format}}, {{Function||string:cr}}, {{Function||string:nl}} and {{Function||string:tab}} adopted from the obsolete Output Module.
The Module was introduced with Version 8.3. Functions were adopted from the obsolete Utility and Output Modules.