我想解析 .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}]$ 但它不能正常工作。
我想解析 .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}]$ 但它不能正常工作。
该[...]
构造匹配那些[
和之间的字符集]
。要获得否定匹配,您需要(?! ... )
“否定前瞻”构造。
该模式^(?!\d{2}:\d{2}:\d{2}\.\d{3}).*$
匹配任何不是“hh:mm:ss.fff”的东西。
请注意,单个数字小时或少于 3 位数字的一小部分仍将匹配!
我找到了另一种解决方案:执行“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"/>