【问题标题】:Notepad++ Remove everything before the , string?Notepad++ 删除 , 字符串之前的所有内容?
【发布时间】:2015-01-31 13:57:28
【问题描述】:

我有一个这样的文件

100980,'text 1','text 2','email@email.net',0,0,0,0,0,''

我想去掉开头和结尾的数字

所以该文件在一个不错的列表中将如下所示..

'text 1','text 2','email@email.net'

【问题讨论】:

  • 你最好编写一个小程序,我认为 Notepad++ 不允许你进行如此复杂的编辑操作。
  • 使用 OpenOffice Calc(或 Microsoft Excel)会更容易打开 CSV 作为表格并删除列,然后重新另存为 csv。
  • 那个文件有多少行?所有的行都像例子吗?
  • @Sam 有 13675 ​​行

标签: notepad++


【解决方案1】:

通过 Excel 的一种方式,无需编写小程序:

无论您手动对文件中的信息做什么,复制它并处理副本!

  • 在 Notepad++ 中打开副本。 (对于以下步骤,请打开搜索对话框并取消选中“仅搜索整个单词”选项。

  • 我想你的“之前”示例末尾的双引号(实际上是两个单引号)不是有意的。如果它实际上是文件中每一行的一部分,请搜索​​并替换双引号(或两个单引号),而不是任何内容(因此删除它)

  • 然后搜索并用分号替换所有逗号。您的文件就是有效的 CSV 格式文件。

  • 重命名以 *.csv 结尾的文件

  • 在 Excel 中打开文件

  • 删除不需要的列,重新保存以 *.csv 结尾的文件

  • 用记事本++打开文件

  • 搜索并用逗号替换所有分号

然后你会看到结果。 以 *.txt 结尾重命名它以接收正常的文本文件。

要使这成为例行操作,最好编写一个小程序,或者(如果您是它的开发者)让发出原始文件的程序也以您在此处需要的格式编写第二个文件。

【讨论】:

    【解决方案2】:

    在记事本++中使用正则表达式(Regex)搜索和替换

    输入这个作为你的搜索字符串

    \d*\,('.+')(\,.*$)
    

    这是你的替换字符串

    $1
    

    【讨论】:

      【解决方案3】:

      您可以执行两步正则表达式“替换”。

      第一步:去掉前导数字:
      替换对话框:
      查找内容:^[0-9]+,
      替换为:(留空)
      搜索模式:勾选正则表达式
      全部替换

      第二步:去掉结尾的逗号数字和结尾的单引号:
      替换对话框:
      查找内容:,([0-9]+,)*''$
      替换为:(留空)
      搜索模式:勾选正则表达式
      全部替换

      如果出现问题,请使用撤消。如果您的示例中的两个单引号不是有意的,只需将它们放在第二个正则表达式中即可。

      希望对您有所帮助。

      【讨论】:

        【解决方案4】:

        试一试:

        查找内容:^\d+,|(?:,\d+)+,''$
        替换为:Leave empty

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-05
          • 1970-01-01
          • 2022-01-01
          • 2021-03-05
          • 2022-09-22
          相关资源
          最近更新 更多