2012-06-07 23 views

回答

2

從Eclipse Juno開始,您可以在OCL中使用正則表達式。調用它的函數是匹配(正則表達式),就像在Java中一樣。

context Packet 
inv ValidIPv4 : ip.matches('\b([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\b') 

來源:http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.ocl.doc%2Fhelp%2FCompleteOCLTutorial.html

如果您有Eclipse的以前版本的,那麼我建議你Ecore元素上加入了Java的約束,則通過生成的Java模板代碼驗證你的元素。

1

至於正則表達式的一部分:

\b([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\b 

匹配0.0.0.0通過999.999.999.999 使用,如果你知道這個數據不包含無效的IP地址,這種快速而簡單的正則表達式。 這4個數字中的每一個都存儲在一個捕獲組中,因此您可以訪問它們以進行進一步處理。

+0

問題是如何比較屬性與正則表達式 –

相關問題