Regex 正则表达式查找和替换一行中的多个匹配项

Regex 正则表达式查找和替换一行中的多个匹配项,regex,Regex,我试图使用我的IDE的正则表达式查找和替换功能来修改我的一段代码。目前代码如下所示: //some-code myvar = ['var1','var2','var3'] //some-more-code myvar = ['othervar1','othervar2'] 变量myvar有几个赋值语句作为字符串列表。我想把这些字符串列表转换成字典;键等于字符串,值等于'my'+字符串。以下是更换后的外观 //some-codes myvar = {'var1':'myvar1','var2':

我试图使用我的IDE的正则表达式查找和替换功能来修改我的一段代码。目前代码如下所示:

//some-code
myvar = ['var1','var2','var3']
//some-more-code
myvar = ['othervar1','othervar2']
变量myvar有几个赋值语句作为字符串列表。我想把这些字符串列表转换成字典;键等于字符串,值等于'my'+字符串。以下是更换后的外观

//some-codes
myvar = {'var1':'myvar1','var2':'myvar2','var3':'myvar3']
//some-more-codes
myvar = {'othervar1':'myothervar1','othervar2':'myothervar2'}
我正在努力正确地匹配列表中的各个字符串(这样我就可以用$0:my$0替换它们)。记住,我只想替换分配给myvar的字符串列表。所有其他字符串列表应保持不变。我尝试使用lookahead
(?=myvar=)(.*)([a-z]*)”
,但它只匹配列表中的最后一个变量。如果我将匹配设置为lazy
(?=myvar=)(.*?)([a-z_]*)”
,则它只匹配列表中的第一个变量


请提供任何帮助。

如果您的IDE支持您可以使用的
\G
特殊选项

(?<=myvar = \['|\G',')[^']+

(?你想匹配什么?列表中的字符串?@JamesBuck是的。替换列表中的每个字符串。为什么不捕获
[
]中的所有内容
并在
的基础上进行拆分,以后做任何你想做的事?@rock321987我正在寻找单行匹配和替换,以便与我的IDE的regex find and replace一起使用。最直接的方法是尝试匹配引号中的字符串,但它将匹配所有位置的字符串。前提是我可以将其限制为以myvar开头的行=然后它会工作。您可以尝试。然后,运行第二个替换:。问题是,如果您更新其中一个,所有变量都将同时更新,直到并且除非变量名遵循某种格式,如
var1->myvar1
谢谢。它成功匹配Pycharm中的字符串。但是,不幸的是,当我尝试替换ma时tches与
$1:my$1
的匹配不知怎么搞砸了。看起来它无法正确处理
\G
@rajendra您需要用
$0'替换:'my$0
,因为匹配不包括引号,也没有捕获组1。如果这不起作用,请在
([^']+)周围放上括号
并改用
$1
。@JamesBuck两种方法都不走运。Pycharm似乎无法处理
\G
替换。