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