2012-12-27 97 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"/>

相關問題