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

Regex 正则表达式-在每行中搜索一定数量的数字,regex,notepad++,Regex,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 . . . . 我想做的是在每一行中查找前三个实体(无论是a-还是数字),然后删除它们,以便最终得到以下表格: line_a 34 54 33 44 line_b 43 76

我有一个记事本++的表格,我试图格式化并去掉一些数字和点。该表如下所示:

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 . . . . 
我想做的是在每一行中查找前三个实体(无论是a-还是数字),然后删除它们,以便最终得到以下表格:

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}
并将其替换为
$1
。 这将查找每行上没有空格的前四个字符串,并将其替换为这四个字符串中的第一个。

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

^
->行首

(\s*[^]+){3}
->三组字符串,它们前面可能(或不)包含空格/制表符


(.*)$
->将第2组中用于替换的行的其余部分分组(
$
表示行的结尾)

转到
搜索>替换
菜单(快捷键CTRL+H)并执行以下操作:

  • 查找内容:

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

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

  • 然后按
    Replace All

  • 这将删除前3列,同时将完全删除仅点线。您可以测试它,解释它,并在上查看特定示例的结果


    嘿。理论上,这似乎是正确的,但在记事本++中,它没有给我任何结果(应用程序只是说它找不到整个字符串,它似乎与这个字符串作为一个整体匹配,并且没有寻找单独的数字和。)?Phillip,这不是理论上的,我已经测试过了,你也可以在线测试!你能告诉我你的记事本++版本吗?如果低于6.0,这是您的问题,请更新它并再次检查。我也不理解它,因为我同意它可以在线工作。记事本++是v6.5,我甚至重新下载了它。我正在尝试一部分一部分地浏览代码。唯一有效的部分是:(?:[.\d]+\s){3}-它给我三个数字块,但如果一个数字后面跟一个数字,就不行了。然后再跟一个数字,行首的“^”也不起作用。你是对的,因为N++的“全部替换”特性,正则表达式在N++和regex101.com中的工作方式不一样。所以我对它做了一点修改,并添加了一个替换对话框的屏幕截图,以确保您已经设置好了所有内容。让我知道它现在是否工作。