Перейти к содержанию

xsl:analyze-string

Применяет регулярное выражение к заданному строковому значению.

Доступно в XSLT 2.0 и более поздних версиях. Доступен во всех изданиях Saxon.

  • Категория: инструкция
  • Содержимое: ( xsl:matching-substring?, xsl:non-matching-substring?, xsl:fallback* )
  • Допустимые родительские элементы: любой элемент XSLT, модель содержимого которого - sequence-constructor; любой литеральный элемент результата

Атрибуты

select
expression
Выражение XPath, значением которого является анализируемая строка.
regex
{ string }
Регулярное выражение, которое может быть задано в качестве шаблона значения атрибута.
flags?
{ string }
Один или несколько Perl-подобных флагов для управления способом, которым выполняется сопоставление регулярных выражений, например, значение m указывает на многострочный режим.

Заметки по реализации Saxon

XSLT 3.0 снимает ограничение на то, что регулярное выражение не должно соответствовать строке нулевой длины, так что теперь это разрешено, начиная с Saxon 9.6.

Saxon позволяет атрибуту flags содержать ";j" или ";n" в конце, чтобы указать, что механизм регулярных выражений Java или .NET должен использоваться предпочтительно, чем собственный механизм регулярных выражений Saxon. При использовании этой опции правилами для регулярных выражений будут правила из Java или .NET, а не правила, определяемые XPath.

Подробности

Элемент xsl:analyze-string применяет регулярное выражение к заданному строковому значению. Строка разбивается на последовательность подстрок, каждая из которых классифицируется либо как совпадающая (если она соответствует регулярному выражению), либо как не совпадающая (если не соответствует). Затем подстроки обрабатываются по отдельности: совпадающие подстроки - элементом xsl:matching-substring, который появляется как дочерний элемент инструкции xsl:analyze-string, несовпадающие подстроки - аналогичным элементом xsl:non-matching-substring. Если один из этих элементов опущен, соответствующие подстроки не обрабатываются.

При обработке совпадающих подстрок можно вызвать функцию regex-group(), чтобы найти части совпадающей подстроки, которые соответствуют определенным группам в круглых скобках в регулярном выражении.

Примеры

Примеры этого элемента можно найти в спецификации XSLT 3.0.

Ссылки

См. также

Комментарии