记事本++正则表达式保存自定义信息,但更改括号类型

notepad++ regex save custom info, but change brackets type

所以。 我有很多这样的代码,比如

*tons of text* get_sprite_ori('normal/mi/randomtextIhavetosave.png') *tons of text*

我想出了如何找到这种文本:get_sprite_ori\('.*?'\) 但我必须让这段文字看起来像那样:

 *tons of text* "images/sprites/normal/mi/randomtextIhavetosave.png" *tons of text*

我尝试了“$1”和 "images/sprites/",但它仍然在“”或 "images/sprites/"

上发生变化

如果你还不明白: 我有很多这样的积木:

image mi serious voca = ConditionSwitch("persistent.sprite_time=='sunset'", im.MatrixColor(im.Composite((1050, 1080), (0, 0), get_sprite_ori('normal/mi/mi_3_body.png'), (0, 0), get_sprite_7dl('normal/mi/mi_3_voca_dress.png'), (0, 0), get_sprite_ori('normal/mi/mi_3_serious.png')), im.matrix.tint(0.94, 0.82, 1.0)), "persistent.sprite_time=='night'", im.MatrixColor(im.Composite((1050, 1080), (0, 0), get_sprite_ori('normal/mi/mi_3_body.png'), (0, 0), get_sprite_7dl('normal/mi/mi_3_voca_dress.png'), (0, 0), get_sprite_ori('normal/mi/mi_3_serious.png')), im.matrix.tint(0.63, 0.78, 0.82)), True, im.Composite((1050, 1080), (0, 0), get_sprite_ori('normal/mi/mi_3_body.png'), (0, 0), get_sprite_7dl('normal/mi/mi_3_voca_dress.png'), (0, 0), get_sprite_ori('normal/mi/mi_3_serious.png')))

而且我必须摆脱脚本,因为它们内置在我使用的新版本的 RenPy 中。

如前所述,您需要使用捕获组(一对未转义的括号)来捕获 带有正则表达式模式的一部分文本。第一个这样的对将捕获可以使用 </code>(或 <code>)引用的第一个子匹配项。

至于正则表达式,您可以将 .*? 替换为 [^']*,因为您不太可能在 ) 之前再添加一个 '。并添加一个单词边界 \b 来匹配 get 作为一个完整的单词:

\bget_sprite_ori\('([^']*)'\)

并替换为images/sprites/

查看设置:

正如 Kenney 所说(在评论中感谢他),最好的方法是调整我的处理方式:

所以,最简单的方法就是使用而不是

get_sprite_ori('.*?')

get_sprite_ori('(.*?)')

之后 $1 就可以了。