如何删除以一堆制表符/空格记事本++开头的行

How to remove the line that start with bunch of tabs/spaces notepad++

提问人:Yos 提问时间:11/14/2023 更新时间:11/14/2023 访问量:44

问:

我的文本文件包含如下内容

  asd signal1;/* '<Root>/explain1' */
  asd signal2;/* '<Root>/explain2' */
  asd signal3;
                                    /* '<Root>/explain3' */
  asd signal4;
                                    /* '<Root>/explain4' */
  asd signal5;/* '<Root>/explain5' */

如何使用替换 (Ctrl + H) 删除所有行尾和下一行中的空格以使它们变成这样的内容?

  asd signal1;/* '<Root>/explain1' */
  asd signal2;/* '<Root>/explain2' */
  asd signal3;/* '<Root>/explain3' */
  asd signal4;/* '<Root>/explain4' */
  asd signal5;/* '<Root>/explain5' */

我试图用谷歌搜索如何做到这一点,但没有任何东西与我正在寻找的东西相符

记事本++

评论

0赞 easleyfixed 11/14/2023
如果你有一个已知的模式,你可以使用REGEX,但构建确切的语句会很棘手,因为你不是在搜索值,而是在搜索一个值。
0赞 easleyfixed 11/14/2023
如果你能把这些值输入到像asp classic、python或php这样的前端,你也许可以将这些值放入某种网格中,这样它就知道什么时候找到一个空间,然后正确地重新格式化数据。然后,当您解决它时,您可以让它使用 FileObject 输出文件以创建一个新的文本文件,该文件恰好具有正确格式化的所有数据。
0赞 ScootCork 11/14/2023
在您的示例中,您可以使用正则表达式匹配 和 替换为 。但是,很难说这是否是您的实际数据的万无一失;\s+;
0赞 easleyfixed 11/14/2023
更新 - 哦,你知道..正在考虑并重新阅读您的帖子。标题说它的 TABS ..因此,如果选项卡实际上在文件中,则可以使用正则表达式搜索单个选项卡的\t。我测试了您发布的内容,它格式化为空格而不是制表符..所以希望这只是由于输入示例而不是复制和粘贴。
0赞 Yos 11/14/2023
我用了这个 \R++( ) 的正则表达式

答:

1赞 Tim Biegeleisen 11/14/2023 #1

通过反复试验,我发现以下模式似乎有效:

;\s+(.*?)(?=\r?\n|$)

这匹配:

  • ;分号
  • \s+一个或多个空格字符
  • (.*?)然后在所有内容中匹配 AND 捕获,直到$1
  • (?=\r?\n|$)向前看,看到最近的换行符或输入结束

演示

替换是 ,它有效地去除了 assembly 命令之后、C 样式注释之前的所有空格。;$1

注意:在点全部模式下运行上述正则表达式,以便该术语可以跨换行符匹配。(.*?)

1赞 The fourth bird 11/14/2023 #2

使用 Notepad++,您可以使用:

;\K\s+

该模式匹配:

  • ;匹配分号
  • \K忘记到目前为止匹配的内容
  • \s+匹配一个或多个也与换行符匹配的空格字符

观看正则表达式演示

在替换中,使用空字符串。


如果你想让它更精确一点,你可以用积极的前瞻来向右断言:/*

;\K\s+(?=/\*)

在此处输入图像描述