[xquery-talk] contains and tokenize

David Sewell dsewell at virginia.edu
Mon Oct 23 12:07:34 PDT 2006

On Mon, 23 Oct 2006, Cindy Girard wrote:

> Hi,
>   I have the following where clause:
>   where contains(upper-case($text), upper-case($keyword))
>   It works fine, except that it returns partial word matching. To only
>   match whole words, I'm pretty sure I need to use tokenize(), but I'm
>   not sure how to put it all together.

You could use an appropriate regular expression with matches(). For

  where matches($text, concat('\W', $keyword, '\W'), 'i')

I.e., match a string that contains non-word character + keyword +
non-word character, and do this case-insensitively.

David Sewell, Editorial and Technical Manager
ROTUNDA, The University of Virginia Press
PO Box 400318, Charlottesville, VA 22904-4318 USA
Courier: 310 Old Ivy Way, Suite 302, Charlottesville VA 22903
Email: dsewell at virginia.edu   Tel: +1 434 924 9973
Web: http://rotunda.upress.virginia.edu/

More information about the talk mailing list