有没有办法在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]
答案 0 :(得分:0)
XSLT 1.0中没有正则表达式支持。
您的处理器可能提供了一种使用正则表达式作为扩展名的方法。
您可以轻松执行验证格式的部分测试(但是 而不是变量的内容):
translate($TC, '123456789;', '000000000:') ='00:00:00:00'
对于格式为"##:##:##:##"
的任何字符串,这将返回true
(其中任何冒号都可以是分号)。但是,它不会
检查小于24的小时数或分钟/秒
不到60岁。
如果你想要这样的测试,你必须单独添加它们, e.g:
substring($TC, 1, 2) < 24
小时。