Regex 在正则表达式中,选择以“编辑”开头的行,并忽略要插入的剩余字符;行尾

Regex 在正则表达式中,选择以“编辑”开头的行,并忽略要插入的剩余字符;行尾,regex,notepad++,Regex,Notepad++,下面是文本文件的一部分(整个文件有3600行),我想在每行末尾添加一个引号,以“编辑”开头,忽略后面的内容,直到该行的最后一个字符插入结尾。我正在使用notepad++中的regex并查找和替换 set subnet 3.0.21.30/32 next edit "3.0.34.106/32 set subnet 3.0.34.106/32 next edit "3.1.217.15/32 set subnet 3.1.217.15/32 next edit "3

下面是文本文件的一部分(整个文件有3600行),我想在每行末尾添加一个引号,以“编辑”开头,忽略后面的内容,直到该行的最后一个字符插入结尾。我正在使用notepad++中的regex并查找和替换

set subnet 3.0.21.30/32
next 
edit "3.0.34.106/32
set subnet 3.0.34.106/32
next
edit "3.1.217.15/32
set subnet 3.1.217.15/32
next
edit "3.80.211.237/32
set subnet 3.80.211.237/32
next
edit "3.81.91.109/32
set subnet 3.81.91.109/32

这样的东西对你有帮助吗?

模式:

(^edit.*)
\1"
set subnet 3.0.21.30/32
next 
edit "3.0.34.106/32
set subnet 3.0.34.106/32
next
edit "3.1.217.15/32
set subnet 3.1.217.15/32
next
edit "3.80.211.237/32
set subnet 3.80.211.237/32
next
edit "3.81.91.109/32
set subnet 3.81.91.109/32
更换:

(^edit.*)
\1"
set subnet 3.0.21.30/32
next 
edit "3.0.34.106/32
set subnet 3.0.34.106/32
next
edit "3.1.217.15/32
set subnet 3.1.217.15/32
next
edit "3.80.211.237/32
set subnet 3.80.211.237/32
next
edit "3.81.91.109/32
set subnet 3.81.91.109/32

这将在结尾添加一个引语。我不知道notepad++的局限性,但从我的阅读来看,它似乎适合您。

测试字符串:

(^edit.*)
\1"
set subnet 3.0.21.30/32
next 
edit "3.0.34.106/32
set subnet 3.0.34.106/32
next
edit "3.1.217.15/32
set subnet 3.1.217.15/32
next
edit "3.80.211.237/32
set subnet 3.80.211.237/32
next
edit "3.81.91.109/32
set subnet 3.81.91.109/32

这是我在R中实现一个解决方案的方法。它可能不是最优雅的,但是它完成了任务。也许你可以考虑用R代替记事本,但是它应该有一些类似的功能。我使用了 StRyRePrasyAuth/<代码>函数在包<代码> StRGRG中选择了一个从上开始的最后一个字符。代码>编辑,然后将该字符替换为其值加上右引号

我是这样做的。首先我把它变成了一根绳子

    string <- "set subnet 3.0.21.30/32
    next
    edit '3.0.34.106/32
    set subnet 3.0.34.106/32
    next
    edit '3.1.217.15/32
    set subnet 3.1.217.15/32
    next
    edit '3.80.211.237/32
    set subnet 3.80.211.237/32
    next
    edit '3.81.91.109/32
    set subnet 3.81.91.109/32"
现在,所有“编辑”行的末尾都有一个右引号


我的解决方案中可能有一部分可以改进,那就是使用{010000}来代替“编辑”一词后面的无限多个字符。Lookbehinds不允许使用无限大的字符串,例如
*
,这是我最初试图用它来代替
{010000}
。这似乎与您的数据无关,但也许经验更丰富的regexer可以提供这一点的解决方案。

请用您无法解决的问题更新问题-添加您尝试过的示例、您阅读过的资源以及不起作用的内容。通常遵循以下准则: