ぞろ目の数字の正規表現について

いつもお世話になってます

正規表現の作り方について悩んでまして、皆様のお知恵を拝借したく

トリガーとなる文字列 ssk_message-9999999999
があるとします。数字の桁数はいくつになるか分かりません。
その状態で条件式をregexp(ssk_message-9*)だと99548654なども拾います。
また、regexp(ssk_message-9{2,20})としてとりあえず9が2桁以上20桁未満で引っかかるようにしているのですがこれだ例えば、999994521などもトリガーにかかってしまうのでなんとか9~999999999999...(全部の桁がすべて9)となる方法がないものかと試行錯誤している状態です
すみませんが、よろしくお願いいたします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

ssk_message-9999999999の後に文字列が付かないのであれば、
「ssk_message-9+9$」でいかがでしょうか?

こんなのでどうでしょう?

 ssk_message-(\d)\1{0,20}$

ちなみに上記の場合、ssk_message-XXXXXXXXXXXXXエンドレスではなく、22桁目でNGとなります

ssk_message-Nの最初の数値が決まっている場合は、

 ssk_message-N(\d)\1{0,20}$

としても良いです。この場合23桁目でNGだったはず・・・

ユーザー monga の写真

TNK様、wakaba様コメントをいただきましてありがとうございます。
提示していただいた案で試したり、アレンジしてみたり試したのですが,999999...はちゃんとトリガーがかかるのですが例えば99999425143.....などもトリガーがかかってしまいました。ちなみに数字で終わりではなくそのあとにも文言がきますので$はダメみたいです

ユーザー TNK の写真

後ろに何が付くのか、具体的に例示して頂けませんか?
後ろに続くものも含めて正規表現で限定できるかもしれません。

ユーザー Insight の写真

実機で試していませんが9が連続するだけであれば

ssk_message-9{2,}

でどうでしょう

正規表現では
文字{n,}:直前の文字がn回以上繰り返されている文字列に一致します。
となっています

ユーザー TNK の写真

これでは、最初に質問にある「全部の桁がすべて9」という条件を
満たせないと思います。

例えば、最初の質問にある、

 ssk_message-99548654
 ssk_message-999994521

などにも合致してしまいます。

ユーザー Insight の写真

たしかにそうですね

制限したい文字列の詳細がわからないと難しいですね

・数字は9の連続
・後ろにつくのは文字のみであれば

ssk_message-9{2,}\D*$

でしょうか。

ユーザー heya の写真

「ssk_message- の後に 9 が連続して、その後には数字以外が続く」
というのでよければ、ssk_message-9+[^0-9] でいいと思います。

・9 が二つ以上という条件もつけるなら ssk_message-99+[^0-9] となります。

・9 の連続で終わる可能性も考えるならまた変わってきます。
 ssk_message-9+([^0-9]|$) でいいのか?(少し怪しい)
 >ちなみに数字で終わりではなくそのあとにも文言がきますので
 とあるのでこの可能性は考えなくてもいいんだろうとは思いますが。

・9 以外の数字も対象にしたいなら(0 の連続とか 1 の連続とかもすべて)、
 wakaba さんの書かれたように () と \1 を使うといいです。
 ssk_message-([0-9])\1*[^0-9] みたいな感じ。

・・・と、このように、具体的にどういうパターンを扱いたいのか、細かい条件によって正規表現はいろいろ変わってくるので、できる限り具体的に質問した方が、望む答えが返ってきやすくなりますよ。

余談ですが、Zabbix 3.4 以降なら [^0-9] の部分は \D としてもいいです。

ユーザー monga の写真

皆様、コメントをいただきましてありがとうございます。
ssk_message-9+[^0-9]でうまくいきました。

具体的な質問ができず申し訳ありませんでした
こちらも実際のログがどのようにでるか不明で、担当者からマッチングする文字列のみ聞いておりまして。。
実際のログを見ようにもまだ開発段階でログはあるのですが中身が空っぽの状態でして。

とりあえず大丈夫そうです。
本当にありがとうごさいました