Notepad++ 记事本++;:如何用另一行文字替换一行文字

Notepad++ 记事本++;:如何用另一行文字替换一行文字,notepad++,Notepad++,我在notepadd++中有以下格式的记录 611090102932 20161130 12563 20170112 100333IMPAYES STASIE 2017 01 12 5640 00000000特别 我有190行这样的数据。因此,对于文件中的所有行,我想将00000000之前的5640(数字)替换为20170112之前的12563(数字) 我尝试安装ToolBucket插件,但我不确定如何选择我想要的行并用另一行替换它 如果有人能帮助我,我将不胜感激。如果我没记错的话,如果你按ct

我在notepadd++中有以下格式的记录

611090102932 20161130 12563 20170112 100333IMPAYES STASIE 2017 01 12 5640 00000000特别

我有190行这样的数据。因此,对于文件中的所有行,我想将00000000之前的5640(数字)替换为20170112之前的12563(数字)

我尝试安装ToolBucket插件,但我不确定如何选择我想要的行并用另一行替换它


如果有人能帮助我,我将不胜感激。

如果我没记错的话,如果你按ctrl+f,有一个替换选项。

记事本++有一个替换命令

如果您只需要替换2017 01 12之前的版本,则将“2017 01 12 5640”替换为“2017 01 12 12563”


以类似的方式,如果需要,您可以在搜索/替换条件中包括其他静态数据。

我假设
20170112
00000000 spece
是静态的,并且始终存在,
12563
5640
可以是任何数字

使用正则表达式替换:

查找内容:
\b(\d+)(\h+20170112\h+.*)\b\d+(\h+00000000 spece)$

替换为:
$1$2$1$3

详细信息

  • \b
    -前导词边界
  • (\d+)
    -第1组(替换中的
    $1
    )捕获一个或多个数字
  • (\h+20170112\h+.*)
    -第2组(
    $2
    )捕获1+水平空白(
    \h+
    )、
    20170112
    、1+水平空白,然后捕获除换行符以外的任何0+字符,尽可能少(
    *?
  • \b
    -前导词边界
  • \d+
    -1+位
  • (\h+00000000 specpe)$
    -第3组(
    $3
    )捕获1+个hor。空格和行末尾(
    $
    )的
    00000000特殊字符串
请参见屏幕截图:

  • Ctrl+H
  • 查找内容:
    (\d+)20170112\b.+?)\d+(00000000个字符)
  • 替换为:
    $1$2$3
  • 全部替换

  • 所以,
    20170112
    00000000 espece
    是静态的,并且总是存在的,对吗?和
    12563
    5640
    可以是任何数字吗?是的,我每行都有20170112和00000000。我只需要复制20170112之前的数字,并用00000000之前的数字替换它,尤其是@WiktorStribiżewi,我认为这行不通。我有多行数据,每行分别有20170112和00000000。我只需要将00000000之前的数字替换为20170112之前的数字。如果在
    201701121112243456
    之前找到数字,这将执行查找和替换。@WiktorStribiżew:你说得对,我添加了一个单词边界。非常感谢你的详细解释。这是有效的:)