Notepad++ 尝试仅在每行的第一个空格后添加一个字符

Notepad++ 尝试仅在每行的第一个空格后添加一个字符

我有 30,000 行文本,其中包含随机数量的空格。我需要在每行的第一个空格处添加一个字符。任何能提出建议的人都将不胜感激。

答案1

  • Ctrl+H
  • 找什么:^\S+\h\K
  • 用。。。来代替:%
  • 检查环绕
  • 检查正则表达式
  • Replace all

解释:

^           # beginning of line
  \S+       # 1 or more non space
  \h        # 1 horizontal space
  \K        # forget all we've seen until this position

替代品:

%           # the character to insert

鉴于:

I have 30,000 lines of text that have randon 
number of spaces in them. I need to add a character 
to just the first SPACE in each line. 
Any who can suggest anything would be 
greatly appreciated.

给定示例的结果:

I %have 30,000 lines of text that have randon 
number %of spaces in them. I need to add a character 
to %just the first SPACE in each line. 
Any %who can suggest anything would be 
greatly %appreciated.

在此处输入图片描述

答案2

试试 TextPad。您可以录制宏,然后播放它们。因此,记录您要对第一行执行的操作,完成第一行后,将光标留在下一行的开头。然后只需播放宏,直到文件末尾。或者只需按住播放宏键即可。

https://www.textpad.com/

答案3

你正在寻找的是正则表达式。你要做的第一件事就是将搜索转换为正则表达式

在此处输入图片描述

我很高兴,因为我想我知道如何解决这个问题

https://regex101.com/r/aW4gG2/1

您想要的表达式是:
查找:(^.*?)( )
替换:\1#\2

其工作方式如下,在正则表达式中,表示()“捕获”。这意味着它将找到这个高度特定的组,然后您可以在替换中使用 \1 或 \2 或 \3 引用它。数字从 1 开始,从开括号开始计数

^表示从行首开始。(因为您希望插入内容覆盖第一个空格,所以我们将从前面开始查找第一个空格)

.*?此部分查找空格前面的第一个单词。它通过将任意字符 ( .) 分成一组来实现这一点,这些字符尽可能多 ( *),但最少?。如果没有问号,您将只捕获每个字符(包括所有空格)

( )这部分表示我们的第二个组是第一个组后面的空格。这应该是第一个空格。这就是我们要插入角色的地方。

替代

\1#\2

\1指第一个字符集。*表达式中的表示字符集可以是任意长度的单词,包括0。

#是插入字符

\2\当然是空间。

结果是将 a 放在#每个第一个空格前面。如果你想将它放在第一个空格之后,只需调整替换即可

\1\2#将会把#每行的第一个空格后方 放置。


这就是正则表达式的威力。简单的查找和替换就能比任何宏更精确地完成插入。它灵活、快速,而且大多数时候并不难。

这里有一个很棒的入门教程,可以解释什么是 RegEx 以及它为什么有用。[RegExOne] REO 让我明白了

这是很多人推荐的教程,但说实话我不太明白。[RegEx 信息]

我实际上从未回到 RegEx.info 我直接进入Notepad++ 文档这实际上在这一点上非常有帮助。当然,你可以用 [RegEx101]。您唯一需要做的就是/gm在表达式中添加。然后,您可以将代码片段粘贴到 TestString 中并不断练习,直到正确为止。

在此处输入图片描述

答案4

对此有一个非常简单的解决方案。

我记得 Notepad++ 中已经有一些东西。

  • 打开替换窗口
  • 在“查找”字段中输入“^”,后跟一个空格或任何你想要查找的内容。
    这将仅搜索行首的任何内容
  • 在替换为字段中输入您需要的任何内容
  • 将搜索模式设置为“正则表达式”
  • 单击“全部替换”
  • 完毕

了解更多信息

相关内容