2014-01-28 272 views
4

我有一些隨機數字的日誌。notepad ++查找大於特定數字的數字

我想要做的就是找到一個比一個具體的數字更大的數字,例如:找到所有號碼> 1234567

任何人可以幫助?

+0

我不認爲它可能給出的數字數可以是任何東西。你可以在正則表達式中進行數值範圍檢查,但是鑑於你的情況下天花板是無限的,我懷疑它是可行的,甚至可行的使用正則表達式。 –

+0

如果數字在行首,你可以對行進行排序。如果沒有,您可以使用正則表達式搜索和替換來將它們先移到那裏。請記住,它不是數字排序,所以你會在2之前得到10,依此類推。但它可能有幫助。 – user694733

回答

2

一個奇怪的正則表達式(不知道它的真正有用的):

\d{8,}|123456[8-9]|12345[7-9]\d|1234[6-9]\d{2}|123[5-9]\d{3}|12[4-9]\d{4}|1[3-9]\d{5}|[2-9]\d{6}\b 

它僅適用於您必須修改它另一個數數1234567

2

您可以使用Notepad ++的Python腳本插件。不是最好的解決方案,但它的工作原理!

  1. 從插件管理器或從official website安裝Python腳本插件。
  2. 然後進入插件> Python腳本>新腳本。爲新文件選擇一個文件名(例如find_numbers.py)並複製下面的代碼。
  3. 運行插件> Python腳本>腳本> find_numbers.py,一個新窗口將顯示匹配的數字。
from re import finditer 

number = 1234567 

console.clear() 
console.show() 
content = editor.getText() 
for row, line in enumerate(content.split('\n')): 
    for m in re.finditer(r'[0-9]+', line): 
     if int(m.group(0)) > number: 
      console.write('row %d, col %d-%d: %s\n' % (row, m.start(), m.end(), m.group(0))) 

因此,例如,採取這樣的文字:

This is a test 1234568 
with asome pretty big numbers 0 1234567 
Can anybody help? 
999999999999 99999999 
123 

上述解決方案將返回你:

row 0, col 15-22: 1234568 
row 3, col 0-12: 999999999999 
row 3, col 13-21: 99999999 

您可以將腳本明顯改變輸出信息的任何你喜歡的方式。