除了在Visual Studio代码段上进行转换外,如何应用更多?

问题描述

希望您已经打开Visual Studio代码段,并且可以为我提供帮助。

我试图在编写Visual Studio代码段方面变得更好。

这是我目前拥有的一个

query MyQuery($domain:String!,$hash:String!) {
  hashtags_hashtags(where: {domain: {_eq: $domain}},limit: 15,offset: 5,order_by: {hashtag: asc}) {
    hashtag
    responses_languages(where: {language: {_eq: "english"},hashtag: {_ilike: %$hash%}}) {
      hashtag
      response
    }
  }
}

如上所示,我在代码段中使用了基于文件名的contant,并且正在将文本转换为小写字母,但是我还需要使用另一个正则表达式对其进行转换,因此名称中的文本“ .styled”应完全替换为空”。

是否可以在同一元素上添加2个转换?我目前正在努力寻找方法

解决方法

您可以使用

${TM_FILENAME_BASE/^(?:(.*?)(?:\.styled))?(.*)$/${1:/downcase}${2:/downcase}/}

请参见regex demo

模式详细信息

  • ^-字符串的开头
  • (?:(.*?)(?:\.styled))?-可选出现:
    • (.*?)-第1组:除换行符以外的任何零个或多个字符,并且尽可能少
    • (?:\.styled)-一个.styled子字符串
  • (.*)-第2组:除换行符外,尽可能多的零个或多个字符
  • $-字符串的结尾。

因此,在这种情况下,.styled之前的部分被捕获到组1中,而其捕获的部分则在第二组中被捕获。替换是这两个组的串联(应用了/downcase都可以)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...