2012-12-27 56 views
0

我想在.XML文件中解析时间表达式hh:mm:ss.xxx(小时,分钟,秒,毫秒)。它应该是这个样子的是:解析hh:mm:ss [.xxx]

<condition property="illegal-tc"> <matches pattern="the_pattern" string="${timeCode}"/> </condition>

我需要的是模式\ d {2}的否定:\ d {2}:\ d {2} \ d {3}。

我尝试通过执行^ [\ d {2}:\ d {2}:\ d {2}。\ d {3}] $,但它无法正常工作。

回答

1

[...]构造匹配那些[]之间的一组字符。要获得否定匹配,您需要(?! ...)“负向预测”结构。

模式^(?!\d{2}:\d{2}:\d{2}\.\d{3}).*$匹配所有而不是“hh:mm:ss.fff”。

请注意,单个数字小时或小于3位的小数部分仍然匹配!

0

我找到了另一种解决办法:做了 “法律-TC” 并用,除非像这样的标签否定它在故障条件:

<condition property="legal-tc">

<matches pattern="^\d{2}:\d{2}:\d{2}.\d{3}$" string="${timeCode}"/> 

</condition>

<fail message="Illegal Time Code" unless="legal-tc"/>

相关问题