正規表現:
(?=.*\berror\b)(?=.*\balarm\b).*
テキスト:複数行の正規表現マッチを行う方法の他の作品で
ns1.alarm.abc
ns2.error.cdb
?
正規表現:
(?=.*\berror\b)(?=.*\balarm\b).*
テキスト:複数行の正規表現マッチを行う方法の他の作品で
ns1.alarm.abc
ns2.error.cdb
?
私はあなたがerror
やalarm
のいずれかを含む文字列を検索し、そのためにあなたが次のことを試すことができますしようとしていると思う:
この正規表現を試してみてください:
(?=.*\b(?:error|alarm)\b).*
説明:
(?=.*\b(?:error|alarm)\b)
- error
ORalarm
.*
- - 言葉の有無をチェックするための肯定先読み上記の条件が満たされた場合に、(改行文字を除く)のすべての文字の一致0+出現正規表現(?=.*\berror\b)(?=.*\balarm\b).*
は、同じ行/入力文字列にerror
とalarm
の両方の単語を検索しようとしているため、動作しません。したがって、上記のようにOR条件を設定する必要がありました。
更新:
の両方を一致させるには、これを使用しています。示さHERE
ありがとうございます。しかし、テキスト全体(1行だけではありません)でエラーとアラームを見つける必要があります>これを行うにはより良い方法がありますか? – Iamtheroot
@Iamtheroot答えを更新しました。 yaのために働くかどうか私に知らせてください。 – Gurman
ありがとうGurman。まさに私が探していたもの。 – Iamtheroot
複数行の正規表現として
(?=[\s\S]*\berror\b)(?=[\s\S]*\balarm\b)[\s\S]*
は、多くの場合、あなたの正規表現エンジン/ツールで設定したモードです。あなたのパターンについては、先読みは私に間違って見えます。正規のパターンにマッチしないのはなぜですか? –あなたは何を試そうとしていますか? – Ibrahim
どの正規表現エンジン/言語を使用していますか?複数行モードを有効にする方法についての情報が必要な場合は重要です。 –