regex - 相对路径的 VS 代码片段正则表达式
问题描述
我正在使用 VS Code 在 Elixir/Phoenix Framework 中进行编码并尝试转换以下相对路径
lib/shop_web/live/product_live/index.ex
进入
ShopWeb.Live.ProductLive.Index
使用片段。
最接近的是下面的正则表达式
"${RELATIVE_FILEPATH/^(lib\\/|test\\/)(\\w)|(.ex|.exs)$|\\/(\\w)|_(\\w)/${2:/upcase}${4:/upcase}${5:/upcase}/g}"
谁给了我以下输出
ShopWebLiveProductLiveIndex
我找不到插入缺失点的方法。
谁能帮我?
提前致谢!
解决方案
尝试这个:
"test7": {
"prefix": "al",
"body": [
// my version
"${RELATIVE_FILEPATH/^([^\\/\\\\]+[\\/\\\\])|(\\.ex|\\.exs)$|([^._\\/\\\\]+)|_|([\\/\\\\])/${3:/capitalize}${4:+.}/g}",
// your version tweaked
"${RELATIVE_FILEPATH/^(lib[\\/\\\\]|test[\\/\\\\])(\\w)|(\\.ex|\\.exs)$|([\\/\\\\])(\\w)|_(\\w)/${2:/upcase}${4:+.}${5:/upcase}${6:/upcase}/g}",
],
"description": "alert line"
}
[注意:我为 path.separators/
和\
. 如果您不需要,您可以将代码段缩短很多。]
你的版本非常接近。我将其更改为\\.ex
只是为了使点明确。
我还在第 5 个捕获组([\\/\\\\])
之前添加了第 4 个捕获组,如 ([\\/\\\\])(\\w)
.
现在可以在条件中使用第 4 组来在路径分隔符所在的位置${4:+.}
添加's。.
我的版本有点短——它匹配但不使用任何目录,无论是它lib
还是test
其他。如果这对您不起作用,则很容易修改正则表达式的那部分。我将其缩短为 4 个捕获组。
([^._\\/\\\\]+)|_|([\\/\\\\])
我的版本结束:
([^._\\/\\\\]+)
._\/
: 匹配除,以外的字符
_
: 匹配但我们没有使用它,所以不需要捕获组,或者
([\\/\\\\])
: 仅匹配组 4 中的路径分隔符以在条件中使用。
${4:+.}
: 有条件的,如果有组 4(路径分隔符)添加.
.
推荐阅读
- excel - 不可能的 Excel-VBA 电子邮件循环
- java - 在使用 Maven 编译的胖 jar 中时出现 Apache POI ClasDefNotFoundException
- service-worker - 重试失败的动态导入?(SPA/PWA)
- javascript - 在对象数组中过滤数组
- javascript - 带类别的分组柱形图中的向下钻取
- c# - 如何将方法中显示的字符串调用到另一个类中?
- python - 从整个 DataFrame 中删除空格
- python - Tensorflow V2:在训练和验证期间获取目标和输出
- sitecore - 仅在体验编辑器中显示的 Sitecore 内容
- c# - 如何将类变量声明为常量