2015-10-23 2 views
0

У меня есть строка «текст текстового текста 21.04.15 - 24.04.15 12345678». Я хочу знать, есть ли дата в этой строке, которая соответствует шаблону xx.xx.xx - xx.xx.xx.Как определить, есть ли дата в строке с XSL 1.0

Я понимаю, что xsl 1.0 не поддерживает регулярное выражение. Как я могу это сделать?

Спасибо.

+1

Какой процессор XSLT 1.0 вы используете на платформе? Процессор XSLT 1.0 в .NET, например, «XslCompiledTransform», может вызвать функции .NET, например, процессор XSLT 1.0 в Java может вызывать на Java. MSXML может вызывать Javascript или VBScript. Таким образом, в зависимости от процессора XSLT вы можете легко делегировать дату или тест регулярного выражения на другой язык. –

ответ

0

Try:

contains(translate($string,'123456789', '000000000'), '00.00.00') 

Обратите внимание, что это может возвращать ложные срабатывания, например, если строка содержит «123.45.3789». С некоторыми усилиями вы можете устранить их, включив в себя помеченную пунктуацию (предполагая, что вы знаете все возможные знаки пунктуации, которые могут появляться в данном тексте).

Обратите внимание, что тестирование не выполняется, чтобы убедиться, что шаблон представляет действительную дату.

+0

Спасибо. Это именно то, что мне нужно. –

0

XSL 1.0 очень старый. Почему вы не можете использовать XSL 2.0?

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

\s+(\d{2}\.\d{2}\.\d{2})\s+\-\s+(\d{2}\.\d{2}\.\d{2})\s+

https://regex101.com/r/mW1sK2/2

Вот статья объяснить XSL 2.0 регулярное выражение с 2003: http://www.xml.com/pub/a/2003/06/04/tr.html

+0

Я работаю с системой, использующей XSL 1.0. Мы еще не перешли на XSL 2.0. –

+0

Просто имейте в виду, что некоторые люди, которые отвечают на вопросы на этих форумах, вполне счастливы, что вы тратите свое время, используя древний язык, но они находят его разочаровывающим, когда вы также хотите потратить свои деньги. –

Смежные вопросы