Hyperic HQ によって生成されたアラートからの情報を解析する正規表現を作成しようとしています。アラートは、次のような件名の電子メールとして届きます。
"[HQ] !!! - Alert: My Demo Website Alert Resource: demo.myserver.net Apache Web Server State: fixed"
非常に長い話を短くまとめると、存在しない可能性があるホスト名に関係なく、「Apache Web サーバー」の部分を一貫して取得できる必要があります。ただし、ホスト名が常に「myserver.net」で終わることは知っています。
私が持っている正規表現は次のとおりです。
/Resource:\s.*(?<=mydomain.net)?\s(.*)\s(?=State)/
"Resource:"
私は、これが と の間の 0 個以上の文字に一致し"State:"
、オプションでホスト名に続く (ただし含まれていない)ことを期待していました。
残念ながら、返されるのは"Server"
、つまり、一致させたいビットの最後の単語です。これは、ホスト名が文字列に含まれているかどうかに関係なく発生します。
誰でも助けることができますか?
編集:以下のChadが提供するソリューション
/Resource:\s(?:.*.myserver.net)?(.*)\sState/