home contribute faq download

FunctX XQuery Functions

functx:contains-word

Whether one string contains another, as a separate word

Google
Webxqueryfunctions.com

Description

The functx:contains-word function returns true if $word is contained in $arg as a separate word. It must be delimited by non-word characters or the beginning or end of $arg. It is case insensitive; it matches a word even if the case is different.

A "non-word character" is one that in Unicode belongs in either the Punctuation, Separators or Other category. Generally, most punctuation and white space are considered non-word characters, while letters and digits are word characters.

Arguments and Return Type

NameTypeDescription
$arg xs:string? the string to search
$word xs:string the word to find
return value xs:boolean

XQuery Function Declaration

See XSLT definition.
declare namespace functx = "http://www.functx.com";
declare function functx:contains-word
  ( $arg as xs:string? ,
    $word as xs:string )  as xs:boolean {

   matches(upper-case($arg),
           concat('^(.*\W)?',
                     upper-case(functx:escape-for-regex($word)),
                     '(\W.*)?$'))
 } ;

Examples

XQuery ExampleResultsExplanation
functx:contains-word('abc def ghi', 'def')
true
functx:contains-word('abc.def\ghi', 'def')
true
functx:contains-word('abc def ghi', 'abc')
true
It can be at the beginning or end.
functx:contains-word('abc', 'abc')
true
It can be the whole value.
functx:contains-word('abcdef', 'abc')
false
abc does not appear as a separate word.

Depends On

functx:escape-for-regexEscapes regex special characters

See Also

fn:containsWhether one string contains another

History

Published OnLast UpdatedContributor(s)
2006-06-272007-02-26Priscilla Walmsley, Datypic, pwalmsley@datypic.com, http://www.datypic.com
Datypic XQuery Services

Recommended Reading:

XQuery