2016-10-13 1 views
0

私は興味のある値を持つイテレータからいくつかの出力テキストファイルを持っています。テキストファイルは、関心のある値を抽出するのに非常に時間がかかるようにフォーマットされています。これまで、すべての正規表現の試行が失敗したため、適切にフォーマットされたテキストファイルを手に入れるためにすべてを手作業で削除していました。私はgeditを使用しています。2つの文字列間のすべてのテキストを切り抜くための正規表現

興味のある値は、エポック番号とval_loss番号です。各エポックは、 'Epoch#/ 150'で始まり、 'val_loss:#'で終わります。#値だけに興味があります。それ以外のものはすべて削除する必要がありますので、epoch_numberの_

4 0.0483 
5 0.0356 
6 0.0322 
7 0.0289 
... 
150 9.431e-03 

フォーマットされていないテキスト出力ファイルの例は次のようになります。ただ、明確にする

Epoch 23/150 
    4/500 [..............................] - ETA: 218s - loss: 0.0010 
    8/500 [..............................] - ETA: 218s - loss: 9.6766e-04 
12/500 [..............................] - ETA: 216s - loss: 8.3595e-04 
16/500 [..............................] - ETA: 214s - loss: 7.7532e-04 
20/500 [>.............................] - ETA: 212s - loss: 7.4657e-04 
24/500 [>.............................] - ETA: 211s - loss: 8.4598e-04 
28/500 [>.............................] - ETA: 209s - loss: 8.4580e-04 
32/500 [>.............................] - ETA: 207s - loss: 8.7478e-04 
36/500 [=>............................] - ETA: 205s - loss: 8.5640e-04 
40/500 [=>............................] - ETA: 204s - loss: 8.4638e-04 
44/500 [=>............................] - ETA: 202s - loss: 8.6241e-04 
48/500 [=>............................] - ETA: 200s - loss: 8.4484e-04 
52/500 [==>...........................] - ETA: 198s - loss: 8.2193e-04 
56/500 [==>...........................] - ETA: 197s - loss: 7.9888e-04 
60/500 [==>...........................] - ETA: 195s - loss: 7.9895e-04 
64/500 [==>...........................] - ETA: 193s - loss: 7.9008e-04 
68/500 [===>..........................] - ETA: 191s - loss: 7.7757e-04 
72/500 [===>..........................] - ETA: 189s - loss: 7.6095e-04 
76/500 [===>..........................] - ETA: 188s - loss: 7.6289e-04 
80/500 [===>..........................] - ETA: 186s - loss: 7.7004e-04 
84/500 [====>.........................] - ETA: 184s - loss: 7.6538e-04 
88/500 [====>.........................] - ETA: 182s - loss: 7.6304e-04 
92/500 [====>.........................] - ETA: 181s - loss: 7.5736e-04 
96/500 [====>.........................] - ETA: 179s - loss: 7.5236e-04 
100/500 [=====>........................] - ETA: 177s - loss: 7.4144e-04 
104/500 [=====>........................] - ETA: 175s - loss: 7.4024e-04 
108/500 [=====>........................] - ETA: 173s - loss: 7.2697e-04 
112/500 [=====>........................] - ETA: 172s - loss: 7.2627e-04 
116/500 [=====>........................] - ETA: 170s - loss: 7.2926e-04 
120/500 [======>.......................] - ETA: 168s - loss: 7.2165e-04 
124/500 [======>.......................] - ETA: 166s - loss: 7.2607e-04 
128/500 [======>.......................] - ETA: 165s - loss: 7.3096e-04 
132/500 [======>.......................] - ETA: 163s - loss: 7.4657e-04 
136/500 [=======>......................] - ETA: 161s - loss: 7.4458e-04 
140/500 [=======>......................] - ETA: 159s - loss: 7.3769e-04 
144/500 [=======>......................] - ETA: 158s - loss: 7.3473e-04 
148/500 [=======>......................] - ETA: 156s - loss: 7.4137e-04 
152/500 [========>.....................] - ETA: 154s - loss: 7.4791e-04 
156/500 [========>.....................] - ETA: 152s - loss: 7.4419e-04 
160/500 [========>.....................] - ETA: 150s - loss: 7.3774e-04 
164/500 [========>.....................] - ETA: 149s - loss: 7.4737e-04 
168/500 [=========>....................] - ETA: 147s - loss: 7.4616e-04 
172/500 [=========>....................] - ETA: 145s - loss: 7.4986e-04 
176/500 [=========>....................] - ETA: 143s - loss: 7.5148e-04 
180/500 [=========>....................] - ETA: 141s - loss: 7.4903e-04 
184/500 [==========>...................] - ETA: 140s - loss: 7.5950e-04 
188/500 [==========>...................] - ETA: 138s - loss: 7.5910e-04 
192/500 [==========>...................] - ETA: 136s - loss: 7.6007e-04 
196/500 [==========>...................] - ETA: 134s - loss: 7.5940e-04 
200/500 [===========>..................] - ETA: 133s - loss: 7.5771e-04 
204/500 [===========>..................] - ETA: 131s - loss: 7.5325e-04 
208/500 [===========>..................] - ETA: 129s - loss: 7.5449e-04 
212/500 [===========>..................] - ETA: 127s - loss: 7.5461e-04 
216/500 [===========>..................] - ETA: 126s - loss: 7.5625e-04 
220/500 [============>.................] - ETA: 124s - loss: 7.5089e-04 
224/500 [============>.................] - ETA: 122s - loss: 7.5313e-04 
228/500 [============>.................] - ETA: 120s - loss: 7.5623e-04 
232/500 [============>.................] - ETA: 118s - loss: 7.5475e-04 
236/500 [=============>................] - ETA: 117s - loss: 7.5316e-04 
240/500 [=============>................] - ETA: 115s - loss: 7.5243e-04 
244/500 [=============>................] - ETA: 113s - loss: 7.4972e-04 
248/500 [=============>................] - ETA: 111s - loss: 7.4882e-04 
252/500 [==============>...............] - ETA: 110s - loss: 7.4838e-04 
256/500 [==============>...............] - ETA: 108s - loss: 7.4374e-04 
260/500 [==============>...............] - ETA: 106s - loss: 7.4162e-04 
264/500 [==============>...............] - ETA: 104s - loss: 7.6052e-04 
268/500 [===============>..............] - ETA: 102s - loss: 7.5960e-04 
272/500 [===============>..............] - ETA: 101s - loss: 7.5938e-04 
276/500 [===============>..............] - ETA: 99s - loss: 7.5755e-04 
280/500 [===============>..............] - ETA: 97s - loss: 7.6338e-04 
284/500 [================>.............] - ETA: 95s - loss: 7.6875e-04 
288/500 [================>.............] - ETA: 94s - loss: 7.6677e-04 
292/500 [================>.............] - ETA: 92s - loss: 7.6576e-04 
296/500 [================>.............] - ETA: 90s - loss: 7.6407e-04 
300/500 [=================>............] - ETA: 88s - loss: 7.6126e-04 
304/500 [=================>............] - ETA: 86s - loss: 7.5781e-04 
308/500 [=================>............] - ETA: 85s - loss: 7.5853e-04 
312/500 [=================>............] - ETA: 83s - loss: 7.5757e-04 
316/500 [=================>............] - ETA: 81s - loss: 7.5721e-04 
320/500 [==================>...........] - ETA: 79s - loss: 7.6311e-04 
324/500 [==================>...........] - ETA: 78s - loss: 7.5977e-04 
328/500 [==================>...........] - ETA: 76s - loss: 7.5814e-04 
332/500 [==================>...........] - ETA: 74s - loss: 7.5881e-04 
336/500 [===================>..........] - ETA: 72s - loss: 7.5702e-04 
340/500 [===================>..........] - ETA: 70s - loss: 7.5559e-04 
344/500 [===================>..........] - ETA: 69s - loss: 7.5527e-04 
348/500 [===================>..........] - ETA: 67s - loss: 7.5431e-04 
352/500 [====================>.........] - ETA: 65s - loss: 7.5355e-04 
356/500 [====================>.........] - ETA: 63s - loss: 7.5808e-04 
360/500 [====================>.........] - ETA: 62s - loss: 7.5696e-04 
364/500 [====================>.........] - ETA: 60s - loss: 7.5729e-04 
368/500 [=====================>........] - ETA: 58s - loss: 7.5360e-04 
372/500 [=====================>........] - ETA: 56s - loss: 7.6101e-04 
376/500 [=====================>........] - ETA: 55s - loss: 7.6263e-04 
380/500 [=====================>........] - ETA: 53s - loss: 7.6700e-04 
384/500 [======================>.......] - ETA: 51s - loss: 7.7540e-04 
388/500 [======================>.......] - ETA: 49s - loss: 7.8387e-04 
392/500 [======================>.......] - ETA: 47s - loss: 7.8220e-04 
396/500 [======================>.......] - ETA: 46s - loss: 7.8046e-04 
400/500 [=======================>......] - ETA: 44s - loss: 7.8039e-04 
404/500 [=======================>......] - ETA: 42s - loss: 7.8073e-04 
408/500 [=======================>......] - ETA: 40s - loss: 7.8023e-04 
412/500 [=======================>......] - ETA: 39s - loss: 7.8021e-04 
416/500 [=======================>......] - ETA: 37s - loss: 7.8163e-04 
420/500 [========================>.....] - ETA: 35s - loss: 7.7768e-04 
424/500 [========================>.....] - ETA: 33s - loss: 7.7606e-04 
428/500 [========================>.....] - ETA: 31s - loss: 7.7344e-04 
432/500 [========================>.....] - ETA: 30s - loss: 7.7389e-04 
436/500 [=========================>....] - ETA: 28s - loss: 7.7189e-04 
440/500 [=========================>....] - ETA: 26s - loss: 7.7244e-04 
444/500 [=========================>....] - ETA: 24s - loss: 7.7039e-04 
448/500 [=========================>....] - ETA: 23s - loss: 7.6791e-04 
452/500 [==========================>...] - ETA: 21s - loss: 7.6747e-04 
456/500 [==========================>...] - ETA: 19s - loss: 7.6639e-04 
460/500 [==========================>...] - ETA: 17s - loss: 7.6705e-04 
464/500 [==========================>...] - ETA: 15s - loss: 7.6498e-04 
468/500 [===========================>..] - ETA: 14s - loss: 7.6247e-04 
472/500 [===========================>..] - ETA: 12s - loss: 7.6109e-04 
476/500 [===========================>..] - ETA: 10s - loss: 7.6061e-04 
480/500 [===========================>..] - ETA: 8s - loss: 7.5875e-04 
484/500 [============================>.] - ETA: 7s - loss: 7.5613e-04 
488/500 [============================>.] - ETA: 5s - loss: 7.5422e-04 
492/500 [============================>.] - ETA: 3s - loss: 7.5290e-04 
496/500 [============================>.] - ETA: 1s - loss: 7.5591e-04 
500/500 [==============================] - 231s - loss: 7.5847e-04 - val_loss: 0.0012 

あなたが数字から推測するかもしれないように、そこにある、ファイルごとにテキストブロックのこれらのタイプの150 。文字列:「エポック」と「val_loss」を削除>

Epoch 23 val_loss: 0.0012 

し、すべてを見つける:私は、各行が最初のように見えるようなファイルを得ることに計画していました。正規表現の方が簡単だったものは何でも。

正規表現ウィザードがこのファイルの解決法を知っている場合は、非常に感謝しています。不要なすべての情報を手作業で削除するよりも簡単な方法であれば、混合正規表現または純粋正規表現のいずれの解も許容されます。

EDIT:*をサポートする正規表現エディタが必要なMacユーザーの場合。マッチ改行オプションでは、あなたの唯一の解決策は、ワインを通してMac上でノートパッド++になる可能性が高いからです。私が試みた編集者には、macVim、gedit、komodo、atom、sublime、textwrangler、kate、emacsがあります。

wine bottlerからnotepad ++を簡単にインストールできます。有効にしてください

\1 \2 

+0

それはあなただけで** 1本の**サンプル入力ラインと** 1 **サンプル出力ラインを投稿することができ、何が必要はっきりしていませんか? – xvan

+0

ミックスソリューションを検討しますか? Regex + bashまたは他の言語 正規表現を使って、最初の行の最初の数と一致させ、2番目の行を最後の行から '[val_loss:] 'で得ることができます。 –

+0

ああ、申し訳ありません。したがって、エポックと検証損失の望ましい値の間には約500の線があります。したがって、 エポック#/ 150 ... val_loss:#(テキストブロックのそれぞれの先頭と最後にある)の間にあるすべてのものは無関係であり、削除する必要があります。 1つのサンプル入力行と1つのサンプル出力行が何を意味するのかよくわかりません。 単一の出力行は最終的には のようになります。たとえば、'23 0.0012 ' すべての不要な情報を手作業で削除するよりも簡単な、あらゆる混合、または純粋な正規表現を使用します。 – Alnitak

答えて

1

Epoch\s(\d+)\/150(?:.*?)val_loss:\s+([0-9.]*) 

がで交換することをお試しください。試合改行

Explanation here

+0

ありがとうございました!あなたの式は、あなたが含まれているリンクの中で必要なときに正確に動作するのを見ることができますが、geditで一致するものを見つけることができず、オンライン正規表現サイトのどれも私のものと同じ大きさのテキストファイルを受け付けません。私は努力し続けるつもりです。 – Alnitak

+0

私はメモ帳でも試しました++、期待どおりに動作しました。チェックするだけです。 mathces newline –

+0

サイトでたくさんのテキストを貼り付けることができない場合は、途中からいくつかの行を削除してみることができます。とにかく私がregexr.comで持っていたような別の問題があるかもしれません: 'single'フラグがなく、' .'は改行にもマッチします。それがあなたの問題ではないことを確認してください。そうであれば、ドットを '[\ s \ S]'に置き換えることができます。中括弧は '(?:[\ s \ S] *?)'のようになります。どのようなプログラミング言語を使用していますか? – Andrew

関連する問題