【发布时间】:2019-05-03 10:01:42
【问题描述】:
我想在 Visual Studio Code 1.33.1 上创建一个 sn-p,它使用文件名创建一个 C++ 类。
首先,我要设置“include guard”,重点是使用文件名,替换每个'.'用“_”将其全部设置为大写(标准):#ifndef FILE_CLASS_HPP //filename: File.class.hpp
VSC documentation 为文件名提供了一些变量,还有一些正则表达式可以更改为全大写并用另一个字符替换一个字符。
重点是:由于我对正则表达式一无所知,所以我从来没有做到这两点。
我尝试手动加入正则表达式,但没有成功:#ifndef ${TM_FILENAME/(.*)/${1:/upcase}/[\\.-]/_/g}
预期结果:#ifndef FILE_CLASS_HPP
实际结果:#ifndef ${TM_FILENAME/(.*)//upcase/[\.-]/_/g}
【问题讨论】:
-
Visual Studio does not appear to support uppercasing via regex.
-
@TimBiegeleisen 您链接的帖子可追溯到 2012 年。您可以在 VSC Documentation 的示例中看到,可以使用正则表达式进行大写。
-
纯正则表达式很难做到这一点。
#ifndef名称中是否有固定数量的点,还是可以有任意数量的点? -
@TimBiegeleisen 不幸的是,点的数量是任意的。似乎有一个正则表达式可以用另一个想法替换所有出现的字符:
[\\.-]/_/g。我只是不知道如何将它与全大写的正则表达式结合起来。 -
是的,但问题是,您想到的正则表达式只有在您已经将字符串隔离并在手时才有效,这里 不是 的情况。对于大写,你有同样的问题。
标签: regex visual-studio-code code-snippets