解析hh:mm:ss [.xxx]

时间:2012-12-27 09:34:50

标签: xml-parsing

我想在.XML文件中解析时间表达式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}] $但是它无法正常工作。

2 个答案:

答案 0 :(得分:1)

[...]构造与[]之间的字符集匹配。要获得否定匹配,您需要(?! ... )“否定前瞻”构造。

模式^(?!\d{2}:\d{2}:\d{2}\.\d{3}).*$匹配任何“hh:mm:ss.fff”。

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

答案 1 :(得分:0)

我找到了另一个解决方案:执行“legal-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"/>