我想在.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}] $但是它无法正常工作。
答案 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"/>