2017-01-15 28 views
-1

我有以下正則表達式匹配循環中的數據文件

X00 
X01 
NNN---Loop - 1 
LLL 
LLL  
LLL 
. 
. 
. 
LLL (99th time) 
NNN---Loop - 2 
LLL 
LLL 
LLL 
LLL 
NNN---Loop - 3 
LLL 
T01 
T00 

而且在數據給出你可以看到循環是有文件數據,其中記錄等。

因此,這意味着

NNN--(can occur one time in one loop) 
LLL--(Can occur 99 times in a loop) 

而這個循環應該發生至少一次,最多限制爲n倍。

前兩個和最後兩個記錄將是靜態的。

所以,我試圖用正則表達式來匹配這些數據。試過谷歌,但無法爲這種循環類型的數據編寫這麼複雜的正則表達式。

有什麼建議嗎?

感謝

+0

答案檢查更新的答案。 – sunkuet02

+0

你必須使用正則表達式嗎?這聽起來像是一次只處理一行文件就很簡單。 –

回答

0

你試圖表達:

X01\nX02\n(N{3}(\nL{3}){1,99}\n){1,3}T01\nT02 

說明:

  • X01\nX02\n是你開始的恆定值。
  • (N{3}(\nL{3}){1,99} if for your loop and inner values。
  • Next {1,3}是循環數的範圍。我用過3,你可以改變它。
  • T01\nT02爲您的最後一個常數值。

可以證明在Regex101

+0

感謝您的回覆......但我怎樣才能給正則表達式的前兩個記錄(X00,X01)和最後兩個記錄(T01和T00​​)。因爲這還需要與我的文件中的數據的正則表達式匹配? – kelly

+0

@kelly,我已經更新了我的答案。現在檢查。希望它可以幫助你。 – sunkuet02

+0

....謝謝.. !!你可以檢查這個... https://regex101.com/r/X6vLUd/1試圖編輯一些數據和正則表達式 – kelly