イベントルールのアラート出力の変換と構成で記述する正規表現について

Shinichi Shima
Tera Expert

イベントのDescription内の『発生ノード(TES)』というラベルの後の文字列"test_node_name"を抽出し、アラートレコードのノードにセットするよう、以下のコミュニティの情報を参考に、イベントルールのアラート出力の変換と構成でDescriptionに対して以下の正規表現を記述しました。

 

https://www.servicenow.com/community/itom-forum/event-rules-regex-and-groups/m-p/948775


事前にregex 101で確認して抽出できることを確認したのですが、イベントルールのアラート出力の変換と構成で記述してもunknownとなってしまいます。
これに関してご支援をお願いできないでしょうか

 

記述した正規表現
発生ノード:\(TES\)\K([^\n]*)

 

■Descriptionの内容
=============================
テストコメント3:
発生ノード:(TES)test_node_name
テストコメント4:
=============================


よろしくお願いいたします。

1 件の受理された解決策

iwai様

 

ご教示頂きありがとうございました。

またお忙しい中動作確認までしてくださいありがとうございます。

 

教えて頂きました正規表現を使用したところ正常に動作しました。

大変助かりました、ありがとうございます。

元の投稿で解決策を見る

5件の返信5

iwai
Giga Sage

その正規表現の「\K」は、正規表現として定義を見たことがないです。
動作を検証したわけではないですが、例えば以下のように書き換えてはどうでしょうか。

発生ノード:\(TES\)([^\n]*).*

 

EventRuleの正規表現は全体が一致する必要があるので 最後に「.*」を付け加えてみました。

Shinichi Shima
Tera Expert

iwai様

 

1点情報を追加させて頂きます。

Descriptionの先頭行に対象の文字列を設定すると値が想定通りに抽出できることが確認できました。

 

[イベント]

ShinichiShima_5-1670909351275.png

descriptionに以下文字列を設定

errornode:(TES)test_node_name

テストコメント3:
テストコメント4:

[]

 

[アラート]

ShinichiShima_6-1670909398000.png

 

iwai 様

 

ご支援をして頂きありがとうございました。

 

前の投稿の前に確認結果を投稿したのですが、反映がされていませんでした。

 

ご教示頂きました正規表現を参考に、イベントルールのDescriptionに正規表現を設定をしてみましたが、値が取得できずunknownとなりました。

正規表現:errornode:\(TES\)([^\n]*).*

 

①イベントルール

ShinichiShima_0-1670919869850.png

ShinichiShima_1-1670919895676.png

 

②イベント

Descriptionに以下値を設定

テストコメント3:
errornode:(TES)test_node_name
テストコメント4:

ShinichiShima_2-1670919990606.png

 

 

④処理結果(アラート)

正常に値が抽出できずunknownとなりました。

ShinichiShima_4-1670920084103.png

 

⑤regex101での検証

https://regex101.com/r/kWPHIB/1

正規表現は正しく動作していることは確認できました。

ShinichiShima_5-1670920179239.png

 

 

最初の例が良くなかったです。Description全体が正規表現で一致しないといけないので、errornodeだけ取得で良いなら以下のようになります。

.*errornode:\(TES\)([^\n]*).*

 前後に「.*」を追加することで必ず全体が選択されます。
実際にEventRuleを設定して、Event Recordを作成してAlertで正しく値が設定されていることを確認できました。