Нахождение позиции начала подстроки¶
Задача¶
Требуется найти индекс позиции, с которой начинается подстрока, а не текст до или после этой подстроки.
Решение¶
XSLT 1.0
1 2 3 4 5 6 7 8 9 10 11 12 |
|
XSLT 2.0
1 2 3 4 5 6 7 |
|
Обсуждение¶
Позиция начала подстроки – это длина предшествующей ей строки плюс 1. Если вы точно знаете, что исходная строка содержит данную подстроку, то можете просто вычислить выражение string-length(substring-before($input, $substr)) + 1
. Но в общем случае нужно обрабатывать также случай, когда подстрока не входит в строку. Мы в этой ситуации возвращаем 0
, но можно выбрать и какой-нибудь другой индикатор, например, -1
или NaN
.