正则表达式 - 在每一行中搜索一定数量的数字

时间:2013-11-03 21:52:53

标签: regex notepad++

我在notepad ++中有一个表,我尝试格式化并删除一些数字和点。该表看起来像这样:

line_a . . 47 34 54 33 44

line_b . . . 43 76 23 44

line_c . . . 32 56 12 34

line_d . 33 87 65 12 23 21

line_e 44 32 76 . . . . 

我想要做的是在每一行中寻找前三个entires(无论它是 - 还是数字)并删除它们以便最终我得到这个表:

line_a 34 54 33 44

line_b 43 76 23 44

line_c 32 56 12 34

line_d 65 12 23 21

line_e . . . . 

第二,我想找一条没有数字的行(本例中的最后一行)并将其删除。

任何人都可以帮助我吗? 非常感谢!

3 个答案:

答案 0 :(得分:1)

搜索^([^ ]+)( [^ ]+){3}并将其替换为$1。 这将找到前四个字符串,每行没有空格,并用这四个字符串中的第一个替换它们。

答案 1 :(得分:0)

搜索^(\s*[^ ]+){3}(.*)$并替换为\2

^ - >行的开头

(\s*[^ ]+){3} - > 3组字符串可能(或不包括)前面的空格/制表符。

(.*)$ - >将我们用来替换的组号2中的其余行分组($表示行尾)

答案 2 :(得分:0)

转到Search > Replace菜单(快捷键 CTRL + H )并执行以下操作:

  1. 找到:

    ^(?:[.\d]+\s){3}(?:[ .]+$)?(.*)
    
  2. 替换:

    $1
    
  3. 选择单选按钮“正则表达式”

  4. 然后按Replace All

  5. 这将删除前3列,同时将完全删除仅有点的行。您可以在regex101处对其进行测试,解释并查看特定示例的结果。

    enter image description here