2014-01-28 211 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 

您可以将脚本明显改变输出信息的任何你喜欢的方式。