正規表現の例
ソースの命名方法として正規表現のアプローチを選択した場合は、OnCommand Insight の自動解決方法で使用する独自の式のガイドとして正規表現の例を使用できます。
正規表現の形式
OnCommand Insight の自動解決の正規表現を作成する場合は、というフィールドに値を入力して出力形式を設定できます FORMAT
。
デフォルト設定はです \1`これは、正規表現に一致するゾーン名が、正規表現で作成された最初の変数の内容で置換されることを意味します。正規表現では、かっこで囲まれた記述で変数の値が作成されます。かっこで囲まれた記述が複数ある場合、変数は左から右に数値で参照されます。変数は、任意の順序で出力形式で使用できます。定数テキストは、に追加して出力に挿入することもできます `FORMAT
フィールド。
たとえば、このゾーンの命名規則には、次のようなゾーン名があります。
[Zone number]_[data center]_[hostname]_[device type]_[interface number]
-
S123_Miami_hostname1_filer_FC1 のように入力します
-
S14_Tampa_hostname2_switch_fc4
-
S3991_Boston_hostname3_windows2K_FC0
-
S44_Raleigh_hostname4_Solaris_FC1
出力形式は次のようになります。
[hostname]-[data center]-[device type]
そのためには、ホスト名、データセンター、およびデバイスタイプのフィールドを変数に取り込み、それらを使用して出力する必要があります。正規表現は次のようになります。
.*?_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_.*
括弧が3組あるので、変数です \1
、 \2
および \3
人口が増えるでしょう
この場合、次の形式で出力を受け取ることができます。
\2-\1-\3
出力は次のようになります。
hostname1-Miami-filer hostname2-Tampa-switch hostname3-Boston-windows2K hostname4-Raleigh-solaris
変数間のハイフンは、出力に一定のテキストを挿入した例を示します。
例 1 :ゾーン名の例
この例では、正規表現を使用してゾーン名からホスト名を抽出します。次のようなゾーン名がある場合は、正規表現を作成できます。
-
S0032_myComputer1Name - HBA0
-
S0434_myComputer1Name - HBA1
-
S0432_myComputer1Name - HBA3
ホスト名を取り込むための正規表現は次のようになります。
S[0-9]+_([a-zA-Z0-9]*)[_-]HBA[0-9]
これは、先頭の文字が「 S 」で、そのあとに任意の桁数の数字、アンダースコア、英数字のホスト名( myComputer1Name )、アンダースコアまたはハイフン、大文字の「 HBA 」、 1 桁の数字( 0~9 )の順に続くすべてのゾーンに一致します。ホスト名のみが変数 \1 に格納されます。
正規表現は次のように構成要素に分割できます。
-
「 S 」はゾーン名の先頭の文字を表します。これは、ゾーン名の先頭にある「 S 」にのみ一致します。
-
角かっこで囲まれた文字 [0-9] は、「 S 」のあとの文字が 0~9 の数字でなければならないことを示します。
-
+ 記号は、前の角かっこ内の情報が 1 回以上存在している必要があることを示します。
-
(アンダースコア)は、「 S 」のあとの数字の直後に続くゾーン名の文字がアンダースコアでなければならないことを意味します。この例のゾーンの命名規則では、ゾーン名とホスト名の区切りにアンダースコアが使用されています。
-
必須のアンダースコアのあとにあるかっこは、そのかっこで囲まれたパターンが変数 \1 に格納されることを示します。
-
角かっこで囲まれた文字 [a-zA-Z0-9] は、すべての英字(大文字と小文字の両方)と数字に一致することを示します。
-
角かっこのあとの「 * 」(アスタリスク)は、角かっこで囲まれた文字の 0 回以上の繰り返しを示します。
-
角かっこで囲まれた文字 [__ ] (アンダースコアとダッシュ)は、英数字のパターンのあとにアンダースコアまたはダッシュが必要であることを示します。
-
正規表現内の文字列「 HBA 」は、この文字列そのものがゾーン名に含まれている必要があることを示します。
-
最後の角かっこで囲まれた文字 [0-9] は、 0~9 の 1 桁の数字に一致します。
例 2
この例では、最初のアンダースコアのあとの「 E 」から 2 番目ののの前までの部分を照合し、それよりも前とあとの部分は省いています。
ゾーン: Z_E2FHDBS01_E1NETAPP
ホスト名: E2FHDBS01
-
RegExp:*
.?(E.?).*?
例 3
正規表現の最後のセクションの前後にあるかっこ()は、どの部分がホスト名であるかを識別します。「 VSAN3 」の部分がホスト名である場合は、 _ ( [a-zA-Z0-9] ) . * となります
ゾーン: A_VSAN3_SR48KENT_A_CX2578_SPA0
ホスト名: SR48KENT
-
RegExp:*
_[a-zA-Z0-9]+_([a-zA-Z0-9]).*
例 4 は、複雑な命名パターンを示しています
次のようなゾーン名がある場合は、正規表現を作成できます。
-
myComputerName123 : HBA1_Symm1_FA3
-
myComputerName123 : HBA2_Symm1_FA5
-
myComputerName123 : HBA3_Symm1_FA7
これらを取り込むために使用できる正規表現は次のとおりです。
([a-zA-Z0-9]*)_.*
。 \1
変数にはのみが含まれます myComputerName123
この式で評価された後。
正規表現は次のように構成要素に分割できます。
-
かっこは、そのかっこで囲まれたパターンが変数 \1 に格納されることを示します。
-
角かっこで囲まれた文字 [a-zA-Z0-9] は、任意の英字(大文字と小文字の両方)と数字に一致することを示します。
-
角かっこのあとの「 * 」(アスタリスク)は、角かっこで囲まれた文字の 0 回以上の繰り返しを示します。
-
正規表現内の文字(アンダースコア)は、その前の角かっこの部分で照合された英数字の文字列の直後に続くゾーン名の文字がアンダースコアでなければならないことを意味します。
-
。(ピリオド)は、任意の文字(ワイルドカード)に一致します。
-
「 * 」(アスタリスク)は、その前のピリオド(ワイルドカード)が 0 回以上続くことを示します。
つまり、「 . * 」の組み合わせは任意の文字数の任意の文字を表します。
例 5 :パターンがないゾーン名の例
次のようなゾーン名がある場合は、正規表現を作成できます。
-
myComputerName_HBA1_Symm1_FA1
-
myComputerName123_HBA1_Symm1_FA1
これらを取り込むために使用できる正規表現は次のとおりです。
(.*?)_.*
変数 \1 には、 myComputerName ( 1 つ目のゾーン名の例)または myComputerName123 ( 2 つ目のゾーン名の例)が格納されます。したがって、この正規表現は、最初のアンダースコアの前のすべての部分に一致します。
正規表現は次のように構成要素に分割できます。
-
かっこは、そのかっこで囲まれたパターンが変数 \1 に格納されることを示します。
-
「 . * 」(ピリオドとアスタリスク)は、任意の文字数の任意の文字に一致します。
-
角かっこのあとの「 * 」(アスタリスク)は、角かっこで囲まれた文字の 0 回以上の繰り返しを示します。
-
。文字は、最短一致を示します。これにより、最後のアンダースコアではなく、最初のアンダースコアでの照合が強制的に停止されます。
-
文字「 _. * 」は、最初のアンダースコア以降のすべての文字に一致します。
例 6 :パターンを含むコンピュータ名の例
次のようなゾーン名がある場合は、正規表現を作成できます。
-
Storage1_Switch1_myComputerName123A_A1_FC1
-
Storage2_Switch2_myComputerName123B_A2_FC2
-
Storage3_Switch3_myComputerName123T_A3_FC3
これらを取り込むために使用できる正規表現は次のとおりです。
.*?_.*?_([a-zA-Z0-9]*[ABT])_.*
このゾーンの命名規則には特定のパターンがあるため、上記の式を使用できます。この式は「 A 」、「 B 」、または「 T 」のいずれかで終わるすべてのホスト名(この例では「 myComputerName 」)に一致し、そのホスト名を変数 \1 に格納します。
正規表現は次のように構成要素に分割できます。
-
「 . * 」(ピリオドとアスタリスク)は、任意の文字数の任意の文字に一致します。
-
。文字は、最短一致を示します。これにより、最後のアンダースコアではなく、最初のアンダースコアでの照合が強制的に停止されます。
-
アンダースコア文字は、ゾーン名の最初のアンダースコアに一致します。
-
したがって、最初の.*?_の組み合わせは、最初のゾーン名の例にある_Storage1_と一致します。
-
2つ目の.*?_の組み合わせは1つ目のゾーン名と同じように動作しますが、1つ目のゾーン名の例では_Switch1_に一致します。
-
かっこは、そのかっこで囲まれたパターンが変数 \1 に格納されることを示します。
-
角かっこで囲まれた文字 [a-zA-Z0-9] は、任意の英字(大文字と小文字の両方)と数字に一致することを示します。
-
角かっこのあとの「 * 」(アスタリスク)は、角かっこで囲まれた文字の 0 回以上の繰り返しを示します。
-
正規表現内の角かっこで囲まれた文字 [ABT] は、ゾーン名に含まれる「 A 」、「 B 」、または「 T 」のいずれか 1 文字に一致します
-
かっこのあとの(アンダースコア)は、 [ABT] で照合された文字のあとにアンダースコアが必要であることを示します。
-
「 . * 」(ピリオドとアスタリスク)は、任意の文字数の任意の文字に一致します。
その結果、次のいずれかの英数字文字列を含む変数 \1 が原因されます。
-
前に任意の数の英数字と 2 つのアンダースコアがある
-
後ろにアンダースコア(および任意の数の英数字)がある。
-
3 番目のアンダースコアの前に、 A 、 B 、または T の最後の文字を使用した。
例 7
ゾーン: myComputerName123_HBA1_Symm1_FA1
ホスト名: myComputerName123
-
RegExp:*
([a-zA-Z0-9]+)_.*
例 8
この例では、最初ののの前のすべての部分を検出します。
ゾーン: MyComputerName_HBA1_Symm1_FA1
MyComputerName123_HBA1_Symm1_FA1
ホスト名: MyComputerName
-
RegExp:*
(.?)_.
例9
この例では、最初のののあとから2番目ののの前までのすべての部分を検出します。
ゾーン: Z_MyComputerName_StorageName
ホスト名: MyComputerName
-
RegExp:*
.?(.?).*?
例 10
この例では、ゾーンの例から「 MyComputerName123 」を抽出します。
ゾーン: Storage1_Switch1_MyComputerName123A_A1_FC1
Storage2_Switch2_MyComputerName123B_A2_FC2
Storage3_Switch3_MyComputerName123T_A3_FC3
ホスト名: MyComputerName123
-
RegExp:*
.?.?([a-zA-Z0-9]+)[ABT]_.
例 11
ゾーン: Storage1_Switch1_MyComputerName123A_A1_FC1
ホスト名: MyComputerName123A
-
RegExp:*
.?.?([a-zA-z0-9]+).*?
例 12
角かっこ*の中の^(円弧またはキャレット)*は、式を否定します。たとえば、[^FF]は大文字または小文字のFを除くすべてを意味し、[^a-z]は小文字のaからzを除くすべてを意味し、上記の場合は_以外のすべてを意味します。format ステートメントは、出力ホスト名にを追加します。
ゾーン: mhs_apps44_d_A_10a0_0429
ホスト名: mhs-apps44-d
-
RegExp:*
([^_])_([AB]).*+
OnCommand Insight での形式:
([^_])_().*
OnCommand Insight での形式:
例 13
この例では、ストレージエイリアスの区切りにが使用されています。この場合、が文字列で実際に使用されており、式の一部ではないことを示すために、を使用する必要があります。
ストレージエイリアス: \Hosts\E2DOC01C1\E2DOC01N1
ホスト名: E2DOC01N1
-
RegExp:*
\\.?\\.?\\(.*?)
例 14
この例では、ゾーンの例から「 PD-RV-W-AD-2 」を抽出します。
ゾーン: PD_D-PD-RV-W-AD-2_01
ホスト名: PD-RV-W-AD-2
-
RegExp:*
[^-]-(.-\d+).+
例 15
この例では、形式の設定でホスト名に「 US-BV- 」を追加しています。
ゾーン: SRV_USBVM11_F1
ホスト名: US-BV-M11
-
RegExp:*
SRV_USBV([A-Za-z0-9]+)_F[12]
形式: US-BV-\1