首页 > 解决方案 > 将字符串行放入“数组”

问题描述

我在 VSCode 中经常有几行字符串,但需要一个用于 PowerShell 或 SQL 的数组。

我在 VSCode

line1
line2
line3

我在 Vscode 中需要类似的东西

('line1','line2','line3')

导致

Select * from Table where Column in ('line1','line2','line3')

或者

$a = 'line1','line2','line3'

有这个功能/扩展吗?

标签: powershellvisual-studio-code

解决方案


数组构建演示你可以制作一个很容易做到这一点的片段。添加一个键绑定以在 keybindings.json 中触发该片段:

{
  "key": "alt+b",                             // or whatever keybinding you want
  "command": "editor.action.insertSnippet",
  "args": {
    "snippet": "(${TM_SELECTED_TEXT/\\s*(.+)(\\s)?/'$1'${2:+,}/g})"
  }
}

${TM_SELECTED_TEXT/\\s*(.+)(\\s)?/'$1'${2:+,}/g}获取选定的文本。正则表达式将获取捕获组 1 中每一行的文本,以及捕获组 2 中的任何换行符。

仅当存在组 2 时才在后面添加 a。由于正'group 1'则表达式标志,这将发生在所有行中。,g


如果您希望在输出中将空行表示为空字符串,请使用

  "snippet": "(${TM_SELECTED_TEXT/((.+)(\\r\\n))|(.+)|(\\r\\n)/'$2$4'${3:+,}${5:+,}/g})"

演示:

空行演示


如果你想要这个片段的输出:

Select * from Table where Column in ('line1','line2','line3')

然后使用:

"snippet": "Select * from Table where Column in (${TM_SELECTED_TEXT/\\s*(.+)(\\s)?/'$1'${2:+,}/g})"

推荐阅读