【问题标题】:Notepad++ copy/paste part of each line with replaceNotepad ++复制/粘贴每行的一部分并替换
【发布时间】:2017-10-13 16:53:11
【问题描述】:

我想知道我们是否可以使用 notepad++ 执行以下操作。我有一个世界上所有国家的详尽清单,这只是其中的一小部分:

Afghanistan : '',
Albania : '',
Algeria : '',
American Samoa : '',
Andorra : '',
Angola : '',
Anguilla : '',
Antigua and Barbuda  : '',

我需要在单引号之间注入每个国家,如下所示:

Afghanistan : 'Afghanistan',
Albania : 'Albania',
Algeria : 'Algeria',
American Samoa : 'American Samoa',
Andorra : 'Andorra',
Angola : 'Angola',
Anguilla : 'Anguilla',
Antigua and Barbuda  : 'Antigua and Barbuda',

无论如何,我们是否可以使用某种类型或正则表达式解析每一行并注入上面指出的每个国家?

【问题讨论】:

    标签: regex notepad++ notepad


    【解决方案1】:
    • Ctrl+H
    • 查找内容:^(.+?)\h+:\h+'
    • 替换为:$0$1
    • 检查环绕
    • 检查正则表达式
    • 请勿查看. matches newline
    • 全部替换

    说明:

    ^           : begining of line
      (.+?)     : group 1, 1 or more any character not greedy
      \h+       : 1 or more horizontal spaces
      :         : literally  colon
      \h+       : 1 or more horizontal spaces
      '         : single quote
    

    替换:

    $0      : whole match
    $1      : content of group 1 (ie the country name)
    

    给定示例的结果:

    Afghanistan : 'Afghanistan',
    Albania : 'Albania',
    Algeria : 'Algeria',
    American Samoa : 'American Samoa',
    Andorra : 'Andorra',
    Angola : 'Angola',
    Anguilla : 'Anguilla',
    Antigua and Barbuda  : 'Antigua and Barbuda',    
    

    【讨论】:

      【解决方案2】:

      您可以在 Notepad++ 中使用 Regex 搜索和替换轻松做到这一点。

      1. 在记事本++中打开文件
      2. 打开搜索 -> 从主菜单替换(或 Ctrl+H)
      3. Find what: 行类型^(.*?)\s:\s'',$
      4. Replace with: 行类型$1 : '$1',
      5. Search Mode 面板中检查Regular expression 无线电
      6. 点击Replace All按钮。

      您可以在下面看到我从您的示例数据中得到的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-05
        • 1970-01-01
        相关资源
        最近更新 更多