Функции с использованием регулярных выражений
В 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".
Дата добавления: 2015-03-19; просмотров: 640;