単一行ルール (ライン パターン) は、XNUMX 行または複数行のテキストに存在する変数を解析するのに役立つ式のタイプを表します。 システムは、ライン パターン マッチング構文を採用して、指定されたライン パターンを適用し、変数を識別して解析します。
次の種類の線パターンを書くことができます。 parser と parser コンポーネント:
▪単純変数 Parser (可変ライン)
▪段落 Parser (可変ライン, 識別子 (ID) 行 と 親行)
Note: ライン パターンはテーブルに適用されません Parser およびテキスト Parser.
このセクションでは、システム内の次の XNUMX 種類の回線パターンを紹介します。それぞれに独自の構文があります。
シンプル ライン パターンは、変数を XNUMX 行で解析するために最も広く使用されているライン パターンです。
次の表は、変数の種類ごとに生のテキストと単純な線のパターンのサンプル ペアを示しています。
変数タイプ |
のサンプル 生テキスト |
ラインパターンのサンプル |
---|---|---|
String |
12.2(53)SE2、ソフトウェアのリリース |
$バージョン、ソフトウェアのリリース |
マルチストリング |
R1の稼働時間は 51週4日23時間3分 |
稼働時間は $mstring:稼働時間 |
整数 |
MTU 1500 バイト |
MTU $int:mtu バイト |
フロート/ダブル |
次の hello が送信されました 1.824 ドライ |
次の hello が送信されました $float:hello_time ドライ |
ブーリアン |
単一接続=false |
単一接続=$bool:single_conn |
▪自動両面印刷、オートスピード ▪全二重、100Mb/秒、100BaseTX/FX ▪半二重、100Mb/秒、100BaseTX/FX |
$デュプレックス(全二重|半二重|自動二重) |
|
0 入力エラー、 0 CRC、 0 フレーム、 0 オーバーラン |
$int:_dummy 入力エラー、 $int:crc CRC, $int:_dummy フレーム、 $int:オーバーラン オーバーラン |
次の XNUMX つの文字は、単純な線のパターンで使用して、文字列または行の開始/終了に一致させることができます。 見る 特殊文字の使用 のガイドをご参照ください。
文字 |
Description |
サンプル ライン パターン |
^ |
行頭に一致します。 |
^$intf is $mstring:状態、回線プロトコルは $ status |
$ |
行末に一致します。 |
ネイバープライオリティは $ priority、状態は $ state, $int:変更 状態 変更$ |
Note:
単純な線パターンで定義された変数に特定のデータ型 ($var1 など) が含まれていない場合、その変数型は、解析された値のデータ型に応じて自動的に割り当てられます。 システムは、この自動検証メカニズムを提供して、数値 (integer/float/double 型) が誤って定義され、文字列として解析され、それ以降は数値として比較または処理されないようにします。 Network Intent オートメーション。
-キーワードによって解析された変数値の場合 parser が数値 (integer または float) の場合、その変数の型は integer または float として認識されます。
-段落の場合 parser変数のすべての解析値が常に数値 (integer または float) である場合、その変数の型は integer または float として認識されます。 値に整数と浮動小数点の両方が含まれている場合、浮動小数点として認識されます。
システムは、変数 (LineByVariable) ごとに一致する行のパターンを提供し、 指定された変数の未加工の CLI テキストの複数行を解析します。 次の詳細な規則に従います。
▪コンマ (,) を使用して var1 と var2 を区切ると、変数が存在する行のみが返されます。
▪ハイフン (-) を使用して var1 と var2 を接続すると、var1 の行から var2 の行までの連続した行が返されます。 パターンで終了行が指定されていない場合、たとえば「変数による行[$var]:$var1-」、段落の残りの部分を返します。
フォーマット |
生テキストのサンプル |
定義のサンプル |
変数による行[$ var]: $var1、$var2 |
||
変数による行[$ var]: $var1-$var2 |
||
変数による行[$ var]: $var1-$var2、$var3 |
Note: 変数による一致行のパターン (LinesByVariable) は、キーワードの変数行パターンでのみ使用できます。 parser または段落 parser.
システムは、キーワードごとに一致する行のパターンを提供します (LinesByKeyword) 指定されたキーワードの未加工の CLI テキストの複数行を解析します。 次の詳細な規則に従います。
▪単純変数グループの開始/終了行または段落グループのサブ段落の間で一致したすべての行を返します。
▪を含む単純な線パターンを許可する ^ と $.
Note: キーワードによる一致行のパターン (LinesByKeyword) は、キーワードの可変行パターンでのみ使用できます。 parser または段落 parser.
システムは、指定された変数の値を出現順に解析するオプション (SelectVariable) を提供します。 次の詳細な規則に従います。
▪コンマ (,) を使用して XNUMX つの変数を区切ります。解析結果として使用される値は、表示順序とその可用性によって異なります。 たとえば、最初の変数の値が null でない場合、それが解析結果として使用されます。 それ以外の場合は、XNUMX 番目の変数の値が解析されます。
▪このパターンでは、前の行パターンで定義された変数のみを使用できます。 キーワードによる一致行 (LinesByKeyword) および変数による一致行 (LinesByVariable) のパターンで定義された変数が許可されます。
Note: 変数による値の一致パターン (SelectVariable) は、キーワードの変数行パターンでのみ使用できます。 parser または段落 parser.
システムは、正規表現 (略して正規表現) を使用して特定の正規表現パターンを提供します。 特定のキーワードから始める: 正規表現 or mregex、正規表現パターンは、必要なすべての変数 (カンマで区切られた) を角括弧のペアで宣言し、その後にコロン (:) と、テキスト行を解析できる正規表現を続けます。 正規表現の括弧の各ペアは、リストされた文字をグループ化してサブパターンを形成するためのキャプチャ グループを表し、それらの一致した値は、角括弧のペア内で定義された各変数に順番に割り当てられます。
次の XNUMX 種類の正規表現パターンを使用して、ビジュアルを定義できます。 parser.
パターン |
Description |
フォーマット |
生テキストのサンプル |
正規表現のサンプル |
単一行の正規表現 |
文字列を XNUMX 行で解析する正規表現。 |
正規表現[$type1:var1, $type2:var2]:正規表現 |
3.255.255.12 em2.0 2.2.2.2:0 12 192.168.1.1 em1.0 2.2.2.2:0 12 172.16.8.12 em3.0 2.2.2.2:0 12 |
正規表現[$nbr_addr,$intf,$label_space_id,$int:hold_time]:^(\d+\.\d+\.\d+\.\d+)\s+(\S+)\s+(\S+)\s+(\d+) |
複数行の正規表現 |
行をまたぐ文字列を解析するための正規表現。 |
mregex[$var1]:正規表現 |
参加したマルチキャスト予約グループ: 224.0.0.1 224.0.0.2 224.0.0.13 224.0.0.22 |
mregex[$マルチキャスト]:マルチキャスト予約グループが参加しました: (.*?)監督 |
次の表は、最も一般的な正規表現構文を詳細に紹介しています。
文字 |
Description |
. |
改行を除く任意の文字に一致します。 |
\ |
特殊文字をエスケープします。 |
() |
リストされたすべての文字をグループ化して、サブパターンを形成します。 |
^ |
文字列の先頭、または複数行モードの行の先頭に一致します。 |
$ |
複数行モードでは、文字列の末尾または行の末尾に一致します。 |
* |
先行する最短パターンに XNUMX 回以上一致します。 たとえば、「ab*」は「a」、「ab」、および「abb」と一致します。 |
+ |
直前の最短パターンに XNUMX 回以上一致します。 たとえば、「be+」は「been」と「bent」に一致します。 |
? |
前の最短パターンをオプションにします。 XNUMX 回または XNUMX 回一致します。 たとえば、「ab?」 "a" と "ab" に一致します。 |
\d |
0 から 9 までの任意の XNUMX 進数に一致します。 |
\s |
セット [\f\n\r\t\v] に相当する任意の空白文字に一致します。 |
\S |
セット [^ \f\n\r\t\v] と同等の非空白文字に一致します。 |