在Notepad++中为每行开头和结尾添加引号

128

我有一个列表(在 .txt 文件中),我想快速将其转换为 JavaScript 语法,因此我想要获取以下内容:

AliceBlue
AntiqueWhite
Aqua
Aquamarine
Azure
Beige
Bisque
Black
BlanchedAlmond

并将其转换为数组字面量...

var myArray = ["AliceBlue", "AntiqueWhite", ... ]

我在notepad++中有一个列表,我需要一个正则表达式,在每行开头添加",在结尾添加",并删除换行符...有没有人可以快速解决这个问题?我对正则表达式不熟悉。

我经常需要执行这样的任务,知道如何做这件事对我来说将是一个巨大的好处。非常感谢。

6个回答

335

你不能在单个替换中完成它,需要执行几个步骤。以下是我如何做到的:

  1. 在正则表达式模式下查找:

(.+)

替换为:

"\1"

这将添加引号:

"AliceBlue"
"AntiqueWhite"
"Aqua"
"Aquamarine"
"Azure"
"Beige"
"Bisque"
"Black"
"BlanchedAlmond"
  • 查找(在扩展模式下):

  • \r\n
    

    用空格替换“with”(逗号后面加一个空格,不显示):

    , 
    

    这将把这些行转换为逗号分隔的列表:

    "AliceBlue", "AntiqueWhite", "Aqua", "Aquamarine", "Azure", "Beige", "Bisque", "Black", "BlanchedAlmond"
    
  • 手动添加var myArray =赋值和花括号:

  • var myArray = ["AliceBlue", "AntiqueWhite", "Aqua", "Aquamarine", "Azure", "Beige", "Bisque", "Black", "BlanchedAlmond"];
    

    8
    如果您想自动化这个过程,可以开始录制一个宏,然后执行这些步骤。 - BoltClock
    2
    在执行“查找(扩展模式)步骤”之前,请验证/将文件行尾字符(EOL)转换为UNIX格式。执行编辑-> EOL转换-> UNIX格式。 - Andre Mikulec
    @Rami A.:确实,源文件可能是在Windows中创建的,因此使用Windows行结尾符是有意义的。请注意,1)Notepad++仅适用于Windows,即使如此,2)这并不意味着它打开的任何文件都将具有Windows行结尾符。 - BoltClock
    1
    “\1”选项是Notepad++特有的还是正则表达式的标准选项?在哪里可以找到这些选项的列表?我在HTML <LI>菜单中使用它,效果非常完美!我想了解一些可能的其他技巧。 - BillyNair
    1
    这个方法可行,但我必须搜索 [\r\n] 而不是 \r\n - P_95
    显示剩余3条评论

    13
    • 一种简单的方法是在将换行符 "\n" 替换为逗号 ","(双引号、逗号、双引号)后,在文件开头和结尾添加双引号。

    例子:

          AliceBlue
          AntiqueWhite
          Aqua
          Aquamarine
          Beige
    
    • Replcae \n with ","

        AliceBlue","AntiqueWhite","Aqua","Aquamarine","Beige
      
    • Now append "(double-quote) at the start and end

       "AliceBlue","AntiqueWhite","Aqua","Aquamarine","Beige"
      
    如果您的文本中包含空白行,您可以使用正则表达式 \n+ 替代 \n。
    示例:
          AliceBlue
    
          AntiqueWhite
          Aqua
    
    
          Aquamarine
          Beige
    
    • Replcae \n+ with "," (in regex mode)

        AliceBlue","AntiqueWhite","Aqua","Aquamarine","Beige
      
    • Now append "(double-quote) at the start and end

       "AliceBlue","AntiqueWhite","Aqua","Aquamarine","Beige"
      

    我尝试了这些步骤,但在文本的最后一行之后出现了额外的“,”。 - kraftwerk

    12

    在notepad++中,在值之前放置任何东西的方法:

    1. 按下CTRL+H
    2. 将^替换为你想要添加到开头的符号
    3. 选择搜索模式为正则表达式
    4. 点击“全部替换”

    在notepad++中,在值之后放置任何东西的方法:

    1. 按下CTRL+H
    2. 将$替换为你想要添加到末尾的符号
    3. 选择搜索模式为正则表达式
    4. 点击“全部替换”

    例如:执行以上步骤后,AHV01将替换为'AHV01'

    祝学习愉快!

    谢谢。


    2
    到目前为止,这是最容易实现和最简单理解的方法。我花了太长时间尝试让各种正则表达式起作用,而我所需要的只是将其分成行首和行尾,并不必在它们之间烦恼。你值得拥有一块饼干! - Nahbyr
    1
    简单而甜美。我从将光标放在第一行的开头开始,结果非常顺利。 - undefined

    9
    1. 将光标放在第一行开头。
    2. 点击“编辑”>“列编辑器”。输入英文双引号,并按回车键。
    3. 重复步骤2,但是将光标放在第一行结尾,输入英文双引号,并按回车键。

    我的文本行中有空格,例如“动作和冒险”或“音乐和古典”。现在第一步已经完成,但第三步导致字符串被打断,并在字符串内插入了双引号,就像这样。“Actio”n & Adventure我的原始列表如下:动漫 儿童与家庭 动作与冒险 英国 经典与文化 经典 喜剧 犯罪 邪教 纪录片 戏剧 恐怖 独立制作 国际 LGBTQ 音乐和古典 真人秀 浪漫 科幻 体育 惊悚片我正在使用64位的Notepad++ v8.4.4。 - kraftwerk

    6

    我正在使用Windows10上的64位Notepad 8.1.9.2,替换过程可以一步完成,请尝试以下方法:

    查找: (.+)\r\n

    替换为: "\1",

    注意:选择包括环绕和正则表达式选项。

    然后您仍需要在代码中手动添加括号。

    谢谢!


    4
    • 将光标放置在文本末尾。
    • 按下SHIFT->。光标将移动到下一行。
    • 按下CTRL-F,在“替换为:”中键入,并按下ENTER

    您需要在第一段文字开头和最后一段文字结尾加上引号。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接