之前我发布了这个问题的简化版本,但我想我可能已经简化了太多,所以这是实际问题。
我想使用正则表达式(在Notepad ++或类似文件中)在下面找到“a_dog”(抱歉墙):
<object classid="clsid:D27CDB6E-AE6D-11cf" id="FlashID">
<param name="movie" value="../flash/words/a_dog.swf">
<param name="quality" value="high">
<param name="wmode" value="opaque">
<param name="swfversion" value="6.0.65.0">
<!--[if !IE]>-->
<object data="../flash/words/a_dog.swf" type="application/x-shockwave-flash">
<!--<![endif]-->
<param name="quality" value="high">
<param name="wmode" value="opaque">
<param name="swfversion" value="6.0.65.0">
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
然后我想使用一个反向引用用以下的a_dog替换所有øø实例:
<input type="button" class="ButtonNormal" onClick="audio_func_øø()">
<script>
function audio_func_øø() {
var playAudio = document.getElementById("element_øø");
playAudio.play();
}
</script>
<audio id="element_øø">
<source src="../audio/words/øø.mp3" type='audio/mpeg'>
<source src="../audio/words/øø.wav" type='audio/wav'>
</audio>
因此只剩下第二个代码(使用a_dog而不是øø),并且没有第一个代码的痕迹。
答案 0 :(得分:4)
我不知道如何在Notepad ++中执行此操作,但您可以使用正则表达式,代码段和SublimeText在multiple selection中执行此操作:
首先制作一个new snippet (guide),其中包含以下内容:
<snippet>
<content><![CDATA[
<input type="button" class="ButtonNormal" onClick="audio_func_$1()">
<script>
function audio_func_$2() {
var playAudio = document.getElementById("element_$3");
playAudio.play();
}
</script>
<audio id="element_$4">
<source src="../audio/words/$5.mp3" type='audio/mpeg'>
<source src="../audio/words/$6.wav" type='audio/wav'>
</audio>
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>audioSnippet</tabTrigger>
</snippet>
在用户包中将其保存为您喜欢的任何内容。如果您对如何/在何处保存它以使其工作有任何疑问,请关注链接的文章。我将在稍后讨论它是如何工作的。
接下来,使用以下模式搜索(使用正则表达式),在Sublime Text中使用以下正则表达式:
(?<=value="../flash/words/).+(?=\.swf)
点击“全部查找” - 这将使用multiple selection选择所有名称(例如“a_dog”,“a_cat”,“a_plane”)。
Ctrl+C
或同等系统)<object>
开始的位置,</object>
结束的位置)<object>
的Ctrl+V
或您系统上的同等文件)您会注意到,您只更换了显示$1
的代码段中的文字。你需要点击Tab跳转到$2
,再次粘贴文本(Ctrl+V
),然后重复,直到你到制表位$6
。
我制作了一个屏幕截图,您可以在此处查看:http://youtu.be/oo2MQV3X244(YouTube上的未列出的视频)