【问题标题】:VSCode chaining regex transforms in a snippetVSCode 在片段中链接正则表达式转换
【发布时间】:2021-03-06 16:07:01
【问题描述】:

我正在尝试以两种方式在 VSCode 中自动转换文件名。 假设我有test-file-name.md,我想在我的文档中以Test File Name 结尾。 现在我可以分别进行转换的两个部分,但我正在努力寻找如何组合它们。

  1. 要删除所有 - 并用空格替换它们,我这样做:${TM_FILENAME_BASE/[-]/ /g}
  2. 对于我所做的每个单词的首字母大写:${TM_FILENAME_BASE/(\b[a-z])/${1:/upcase}/g}(我猜在这种情况下\b 可能没用)

我尝试了多种方式将它们写在一起,但我找不到一种将它们一个接一个的方法。

【问题讨论】:

    标签: regex visual-studio-code vscode-snippets


    【解决方案1】:

    试试这个:

    "body": "${TM_FILENAME_BASE/([^-]+)(-*)/${1:/capitalize}${2:+ }/g}"

    由于g 标志,它将获取所有出现的事件并多次对两个捕获组进行每次转换。在您的测试用例(test-)(file-)(name) 中,这将是三倍。它应该适用于任意数量的连字符。

    ([^-]+) 连字符前的所有内容。

    ${1:/capitalize} 大写捕获组 1。

    ${2:+ } 表示如果有第二个捕获组(-*),则添加一个空格。我添加这个是因为最后没有连字符 - 因此不会有第二个捕获组,因此最后不应添加额外的空间。

    【讨论】:

    • 非常感谢!在多次尝试获得“测试文件名”后,我已经设法获得了“测试文件名”,但仍在努力寻找如何不拥有最后一个空间。
    猜你喜欢
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多