2017-06-09 7 views
1

これは簡単なものだと思っていましたが、何か間違っています。regexはエラーコードが '0'と等しくないすべてのエラーコードと一致します

私は、特定の行「ErrorCode:[number]」が見つかるトン数のロギングを持っています。私は[番号]が '0'と等しくないすべての出現のリストを持っていたいと思います。

正規表現:ErrorCode\:[^0]

が、これはまたのErrorCodeと一致:のErrorCodeように、私は逆の試合 "必須" 作るのですか[スペース]

:0もはや一致しましたか?

+0

ところで、いくつかの外部ツールやコードで使用していますか? –

答えて

2

この正規表現は、(ゼロに等しいことなく)エラーコードがゼロが含まれているものも含め、すべてのエラーを可能にする

ErrorCode\:(?!0)\b 
1

あなたは[1-9]文字クラスを使用することがあります。

ErrorCode:[1-9] 

それはErrorCode:と一致しますが0除く1から9に任意の数字と続きます。

に抽出数、

ErrorCode:([1-9][0-9]*) 

を使用して、グループ1つの値をつかみます。 regex demoを参照してください。

ErrorCode:0*([1-9][0-9]*) 

を使用し、ErrorCode:010(先行ゼロを有する)とないErrorCode:000と一致するようにはthis regex demoを参照してください。

詳細

  • ErrorCode: - リテラルストリング
  • 0* - ゼロ以上0文字
  • ([1-9][0-9]*) - の配列一致グループ1:
    • [1-9]を - 任意のASCII数字だけど0
    • [0-9]* - 0個以上の任意のASCII数字。異なるアプローチで、

      ErrorCode\:(?:[1-9]|\d{2,})\b 
      

      するか、:

+0

/facepalm .... thx .... – bas

+0

注意深いことに、エラーコード '102'はこれらの式によって捕らえられません...この回答を参照してください:https://stackoverflow.com/a/44453700/734335 –

+0

@ MathieuRodic:私が理解する限り、OPはブール戻り値に興味があります。私はその質問から推論する。 –

関連する問題