2

Ecoreモデルがあり、いくつかのOCL制約を追加しようとしています。

有効なIPv4形式のプロパティ(文字列)を作成しようとすると、問題が発生します。正規表現を使用する必要があると思いますが、OCLinEcoreで正規表現を使用する方法がまったくわかりません。

4

2 に答える 2

2

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')

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

以前のバージョンの Eclipse を使用している場合は、Ecore 要素に Java 制約を追加し、生成された Java テンプレート コードを使用して要素を検証することをお勧めします。

于 2013-09-25T14:37:02.070 に答える
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 つの数値はそれぞれキャプチャ グループに格納されるため、さらに処理するためにそれらにアクセスできます。

于 2012-06-07T21:43:58.417 に答える