XLST 1.0中的正则表达式

时间:2016-08-23 17:02:32

标签: regex xslt

有没有办法在XSLT 1.0中使用正则表达式,XML作为输入和所需的输出?我试图使用测试来确认变量是时间码格式,即hh:mm:ss:ff。

我目前使用的正则表达式是:

[0-1][0-9]|2[0-3])(:|;)[0-5][0-9](:|;)[0-5][0-9](:|;)[0-9][0-9]

要生成格式为hh:mm:ss:ff的值时间代码,必须满足以下要求:

[hh = 00 - 19 or 20 - 23]
[; or :]
[mm = 00 - 59]
[; or :]
[ss = 00 -59]
[; or :]
[ff = 00 - 99]

1 个答案:

答案 0 :(得分:0)

  1. XSLT 1.0中没有正则表达式支持。

  2. 您的处理器可能提供了一种使用正则表达式作为扩展名的方法。

  3. 您可以轻松执行验证格式的部分测试(但是 而不是变量的内容):

    translate($TC, '123456789;', '000000000:') ='00:00:00:00'
    

    对于格式为"##:##:##:##"的任何字符串,这将返回true (其中任何冒号都可以是分号)。但是,它不会 检查小于24的小时数或分钟/秒 不到60岁。

    如果你想要这样的测试,你必须单独添加它们, e.g:

    substring($TC, 1, 2) < 24
    

    小时。