2017-10-22 4 views
2

後、私は常に5に等しく、常に私が持っている単語のSerialNumber第五番号の正規表現の2行を取得することができませんし、常にワードシリアル番号

が含まれているシリアル番号を取得するために正規表現を使用しようとしています次

(?=)SerialNumber\n*\d{5}(?<=) 

テキストは次のようになります。

SerialNumber    
00330-80000-00000-AA622 

SerialNumber    
1313311313-13345 

任意のアイデアを、これが機能しない理由?

enter image description here

+1

は、次の3つのマッチングのシリアル番号と3つの非一致するシリアル番号を言う示しすることはできますか? –

+0

SerialNumberの後ろにある行全体をキャプチャしたい、つまり、「00330-80000-00000-AA622」というのは正しいですか? –

+0

@AshishRanjan正解、私はすべてのシリアル番号をテキストに入れたい。だから00330-80000-00000-AA622だけでなく、他のすべて。 –

答えて

3

この正規表現を試してみてください:

SerialNumber\s*\K\S*

Click for Demo

説明:

  • SerialNumber\s*は - 空白
  • \Kの0+出現が続くテキストSerialNumberと一致する - これまで
  • \S*にマッチしたすべてを忘れて - 0+空白文字以外の文字の出現箇所に一致します。
+0

\ Kなしでそれを書く方法はありますか?私が使用しているソフトウェアが残念なことにそれをサポートしていないことは確かです。 –

+1

@BarryLance Notepad ++は '\ K'をサポートしています。 NP ++を使用していない場合は、質問に正しくタグを付けてください。 –

+1

@BarryLance \ Kを必要としない場合、このregex ['(?<= SerialNumber)\ s *(\ S +)'](https:// regex101)のgroup1から必要なテキストを取得する必要があります。 com/r/QKR0gI/4) – Gurman

1

肯定後読み使用して正規表現:

(?<=SerialNumber\n)(\S+) 

Regex101.com