Regex 将字符串附加到代码段中的单词
我目前正在使用JavaScript正则表达式为VSCode编写一些Python代码片段,我希望有一个类似于: 给定Regex 将字符串附加到代码段中的单词,regex,visual-studio-code,vscode-debugger,Regex,Visual Studio Code,Vscode Debugger,我目前正在使用JavaScript正则表达式为VSCode编写一些Python代码片段,我希望有一个类似于: 给定 var1、var2、var3 产生 self.var1=var1 self.var2=var2 self.var3=var3 我目前知道如何用换行符替换逗号,但不知道如何用另一个字符串替换每个单词。我对正则表达式很在行,所以这没用。我想我需要做以下事情: var1, var2 -> self.var1 = var1, self.var2 = var2 谢谢你的帮助 编辑
var1、var2、var3
产生
self.var1=var1
self.var2=var2
self.var3=var3
我目前知道如何用换行符替换逗号,但不知道如何用另一个字符串替换每个单词。我对正则表达式很在行,所以这没用。我想我需要做以下事情:
var1, var2 -> self.var1 = var1, self.var2 = var2
谢谢你的帮助
编辑:
根据评论中的建议,我尝试了以下方法:/(.*)/self.$0=$0/
它显然不起作用有几个原因:它匹配所有字符串直到最后一个逗号。VSCode不允许访问“\w”,但我看不出它有什么帮助。
我测试的另一个东西也无法工作,因为我正在寻找复制每个单词:/(.*)/self.$0=$0/
由于我没有发布,下面是用一条新线路替换的comme:
/[,]/\n/g
第2版(更新):
根据我尝试的评论建议:/(.*?(:,|$)/self.$1=$1\n/g
,结果几乎完美:
托托、提提、塔塔
导致
self.toto=toto
self.titi=titi
self.tata=塔塔
自我
您可以使用
查找内容:\s*([^,\s]+)(?:,|$)
替换为:
self.$1=$1\n
看
详细信息
-0个或更多空格\s*
-捕获组1:除空格和逗号之外的一个或多个字符([^,\s]+)
-与(?:,|$)
或行尾匹配的非捕获组、
将以下内容添加到
python.json
代码段文件中
"var-init": {
"prefix": "varinit",
"body": [
"${1/([\\w_]+)(?:[,\\s]|$)/self.$1 = $1\n/g}",
"$0"
],
"description": "var initialisation"
}
- 键入前缀:
varinit
- 按Tab键
- 键入要用
分隔的变量,包括或不包括空格:,
titi、tata、toto
- 按Tab键
self.titi = titi
self.tata = tata
self.toto = toto
光标在下一行
编辑
正则表达式的简化和使用来自标记的关于if替换的提示${2:+\n}
"${1/([\\w_]+)([, ])*/self.$1 = $1${2:+\n}/g}"
现在变量可以用空格分隔,或者
,
我实际上不知道如何尝试任何东西。正如我所说的,我可以用换行符代替逗号(这很容易),但我不知道从哪里开始。我想选择每个单词的开头,并将其替换为“self.”以及复制每个单词并在前面添加“=”。但是我不知道如何做itOk,所以这一点都没有帮助,因为我已经阅读了JS和Python的整个regex文档。我想复制一个单词并在其前后插入字符串。我读到的东西没有一个能回答这个问题,也没有一个能引出一个想法。好吧,这一点也不清楚,因为你链接了一些东西,在一行的末尾添加了字符串。我测试了你解释的内容,但不起作用,因为正如你所说,我匹配了任何单词。但我想复制的是每个单词:“toto,tata,titi”应该给“toto,tata,tata,titi titi”并且它给了“toto,tata,titi toto,tata,titi titi”试试下面:/(*?)(:,,|$)/self.$0=$0\n/我想我们这里有些东西,谢谢@HarmvanderWal。不幸的是,它完全不起作用。我会更新这个问题看起来很熟悉。。。我建议使用“${1/\\s*([^,]+)(,)*/self.$1=$1${2:+\n}/g}”,因为正则表达式稍微简单一些,并且在最后一个变量之后不添加额外的换行符。空间处理得更好。我用你的代码将空格添加到后面几行的开头。修改到变量已经列出和选择的地方也很容易。如果这是OP的一个用例。有关在类构造函数片段中使用可变数量参数的更复杂的情况,请参阅,对于类初始值设定项,请参阅