Ecoreモデルがあり、いくつかのOCL制約を追加しようとしています。
有効なIPv4形式のプロパティ(文字列)を作成しようとすると、問題が発生します。正規表現を使用する必要があると思いますが、OCLinEcoreで正規表現を使用する方法がまったくわかりません。
Eclipse Juno では、OCL で正規表現を使用できます。呼び出す関数は、Java と同様に、matches(regex) です。
context Packet
inv ValidIPv4 : ip.matches('\b([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\b')
以前のバージョンの Eclipse を使用している場合は、Ecore 要素に Java 制約を追加し、生成された Java テンプレート コードを使用して要素を検証することをお勧めします。
正規表現部分については:
\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 つの数値はそれぞれキャプチャ グループに格納されるため、さらに処理するためにそれらにアクセスできます。