Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-05.doc
Скачиваний:
6
Добавлен:
12.05.2015
Размер:
645.12 Кб
Скачать

5.1.1.4.3.4. Функции поиска соответствия в строках

В XPathопределены следующие функции для строковых значений:

  • fn:contains($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean– возвращаетtrue, если строка $arg1содержит строку$arg2 иfalse– в противном случае;

  • fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean– возвращаетtrue, если строка $arg1начинается со строки$arg2 иfalse– в противном случае;

  • fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean– возвращаетtrue, если строка $arg1заканчивается строкой$arg2 иfalse– в противном случае;

  • fn:substring-before($arg1 as xs:string?, $arg2 as xs:string?) as xs:string– возвращает часть строки$arg1, которая следует перед строкой$arg2, содержащейся в первой строке (если вторая строка не содержится в первой строке, возвращается пустая строка);

  • fn:substring-after($arg1 as xs:string?, $arg2 as xs:string?) as xs:string– возвращает часть строки$arg1, которая следует после строки$arg2, содержащейся в первой строке (если вторая строка не содержится в первой строке, возвращается пустая строка).

Примеры использования функций поиска соответствия в строках:

1. fn:contains("abcdef","de") – возвращает true.

2. fn:starts-with("abcdef","de") – возвращает false.

3. fn:ends-with("abcdef","f") – возвращает true.

4. fn:substring-before("12/10","/") – возвращает строку "12".

5. fn:substring-after("12/10","/") – возвращает строку"10".

5.1.1.4.3.5. Функции с использованием регулярных выражений

В XPathиXQueryопределены следующие функции с использованием регулярных выражений:

  • fn:matches($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:boolean– возвращаетtrue, если в строке$inputвстречается шаблон, заданному в строке$pattern, иначе возвращаетfalse(необязательный параметр$flagsсодержит символы-флажки, задающие условия применения шаблона);

  • fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string, $flags as xs:string) as xs:string– возвращает строку, которая получается при замене в строке$inputсоответствий шаблону, заданному в строке$pattern, строкой, заданной в параметре$replacement(необязательный параметр$flagsсодержит символы-флажки, задающие условия применения шаблона);

  • fn:tokenize($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:string*– возвращает последовательность строк, полученную разбиением исходной строки$inputпо разделительным подстрокам, заданным в шаблоне$pattern(необязательный параметр$flagsсодержит символы-флажки, задающие условия применения шаблона).

  • Параметр $flagsв приведенных функциях может содержать следующие флажки:

  • s– метасимвол "." соответствует любому символу строки (если флажокsне задан, метасимвол "." соответствует любому символу строки, за исключением символа перехода на новую строку);

  • m– исходная строка рассматривается как строка, состоящая из нескольких строк, если она содержит символы перехода на новую строку (если флажокmне задан, строка рассматривается как одна строка при использовании метасимволов поиска в начале строки "^" и в конце строки "$");

  • i– поиск по шаблону не зависит от регистра букв (заглавные и строчные буквы считаются одинаковыми);

  • x– пробельные символы перед поиском соответствия шаблону удаляются из строки, если они не заданы в шаблоне как класс символов (например, "\s").

Примеры использования регулярных выражений:

1. fn:matches("abcdef","de") – возвращаетtrue.

2. fn:matches("abcdef","DE") – возвращает false.

3. fn:matches("abcdef","DE","i") – возвращает true.

4. fn:matches("AB CD","BC") – возвращает false.

5. fn:matches("AB CD","bc","ix") – возвращает true.

6. fn:matches("AB CD","b\sc","ix") – возвращает true.

7. fn:matches("AB

CD","B.*C") – возвращает false.

8. fn:matches("AB

CD","B.*C","s") – возвращает true.

9. fn:matches("AB

CD","^C") – возвращает false.

10. fn:matches("AB

CD","^C","m") – возвращаетtrue.

11. fn:replace("aabcdaefaad","aa","a") – возвращает строку "abcdaefad".

12. fn:tokenize("a:b cd:f","(:| )") – возвращает строки "a", "b", "cd" и "f".

Соседние файлы в папке Лекции