【问题标题】:Search/replace in block selection in Notepad++在记事本++中的块选择中搜索/替换
【发布时间】:2015-06-27 20:19:49
【问题描述】:

有没有办法将搜索/替换仅限于 Notepad++ 中的柱状块选择?

这是我想要做的:

  • 我正在批量编辑从大量照片中提取的元数据。

  • 元数据以 csv 文件的形式提供给我,标题行中的字段周围没有引号,每个后续行的第一个字段周围也没有引号。

  • 我在 Open Office calc 中编辑此文件,该文件在所有字段周围都带有引号。

  • 我可以轻松编辑标题行,但问题在于仅从连续行的第一个字段中去除引号。

  • 我可以在列模式下使用记事本,但是在选择第一列后,“仅在选择中搜索”选项框显示为灰色。

  • 我可以手工完成,但这意味着大量的手工工作和增加出错的机会。

【问题讨论】:

    标签: replace notepad++ block selection


    【解决方案1】:

    我知道,这可能对你没有任何帮助,但我只是遇到了同样的问题,偶然发现了这个问题。

    我发现将有问题的块移动到一个新文件并在那里执行查找/替换工作相当不错。移回方块时,一定要在方块模式下选择它(见this question)。

    【讨论】:

      【解决方案2】:

      没有。其他编辑器可能具有此功能。

      【讨论】:

      • Visual Slickedit 具有此功能和许多其他列选择功能。
      【解决方案3】:

      回复有点晚,但是...当我搬到安装了 Notepad++ 的新机器上时,我遇到了同样的问题。以前,我使用的是一个名为 Boxer 的文本编辑器,它具有此功能,我发现它非常宝贵。但是它不是免费软件。

      【讨论】:

        【解决方案4】:

        您可能无法在列式选择中搜索/替换,但您可以在 Notepad++ 中轻松执行任务。使用查找和替换功能,正则表达式选中

        如果您只想从目标列中删除引号,请在 查找 字段中使用以下正则表达式:

         (^([^,]*,){i})"([^,\n\r]*)"(.*$)
        

        i替换为目标列的位置减1。

        (即 - 如果您想在第三列周围加引号,则为 2,第一列为 0 等)

        替换字段中使用:

         \1\3\4
        

        单击“全部替换”将从目标列中删除引号。


        如果您想在不带偏见的情况下删除 csv 中每个元素周围的所有引号,请在 Find 字段中使用以下正则表达式:

         ((?<=,)|(?<=^))"(.*?)"((?=$|,))
        

        替换字段中使用:

         \1\2\3
        

        点击全部替换将去掉列中的引号。


        示例

        由于您没有提供示例 csv 文件,我将介绍自己的工作示例。下面是我的 csv:

         "0","1","2","3","4","5","6","7","8","9"
         "10","11","12","13","14","15","16","17","18","19"
         "20","21","22","23","24","25","26","27","28","29"
         "30","31","32","33","34","35","36","37","38","39"
         "40","41","42","43","44","45","46","47","48","49"
         "50","51","52","53","54","55","56","57","58","59"
         "60","61","62","63","64","65","66","67","68","69"
         "70","71","72","73","74","75","76","77","78","79"
         "80","81","82","83","84","85","86","87","88","89"
         "90","91","92","93","94","95","96","97","98","99"
         "100","101","102","103","104","105","106","107","108","109"
         "110","111","112","113","114","115","116","117","118","119"
         "120","121","122","123","124","125","126","127","128","129"
         "130","131","132","133","134","135","136","137","138","139"
         "140","141","142","143","144","145","146","147","148","149"
         "150","151","152","153","154","155","156","157","158","159"
         "160","161","162","163","164","165","166","167","168","169"
         "170","171","172","173","174","175","176","177","178","179"
         "180","181","182","183","184","185","186","187","188","189"
         "190","191","192","193","194","195","196","197","198","199"
        

        如果我想从第二列中删除引号,我会使用下面的 FindReplace 字段

         (^([^,]*,){1})"([^,\n\r]*)"(.*$)
        
         \1"\3"\4
        

        单击全部替换会产生以下结果:

         "0",1,"2","3","4","5","6","7","8","9"
         "10",11,"12","13","14","15","16","17","18","19"
         "20",21,"22","23","24","25","26","27","28","29"
         "30",31,"32","33","34","35","36","37","38","39"
         "40",41,"42","43","44","45","46","47","48","49"
         "50",51,"52","53","54","55","56","57","58","59"
         "60",61,"62","63","64","65","66","67","68","69"
         "70",71,"72","73","74","75","76","77","78","79"
         "80",81,"82","83","84","85","86","87","88","89"
         "90",91,"92","93","94","95","96","97","98","99"
         "100",101,"102","103","104","105","106","107","108","109"
         "110",111,"112","113","114","115","116","117","118","119"
         "120",121,"122","123","124","125","126","127","128","129"
         "130",131,"132","133","134","135","136","137","138","139"
         "140",141,"142","143","144","145","146","147","148","149"
         "150",151,"152","153","154","155","156","157","158","159"
         "160",161,"162","163","164","165","166","167","168","169"
         "170",171,"172","173","174","175","176","177","178","179"
         "180",181,"182","183","184","185","186","187","188","189"
         "190",191,"192","193","194","195","196","197","198","199"
        

        【讨论】:

          【解决方案5】:

          我在互联网上的搜索,查看天气记事本++ 支持这一点;带我到这。 我使用过 TextPad 并确认它支持在列选定块中查找和替换。 TextPad 也是免费供个人使用的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-10-17
            • 2015-10-08
            • 1970-01-01
            • 2014-03-25
            • 1970-01-01
            相关资源
            最近更新 更多