在过去的几天里,我不得不使用stackoverflow,在其中我发现了一个非常有用的开发人员。谢谢大家!!
我正在开展大项目,我需要一点帮助。我在Sublime Text 3上使用moodle xml文件。
这是我所拥有的代码的一小部分:
<questiontext format="html">
<text>Here is my sample text</text>
</questiontext>
我需要将其转换为:
<questiontext format="html">
<text><![CDATA[<audio preload="auto"><source src="https://www.mywebsite.com/sample.mp3"></audio>Here is my sample text?]]></text>
</questiontext>
问题是我需要改变大约400行,这是我需要改变的。文字&#34;这是我的示例文本&#34;到处都是不同的。我怎样才能做出这样的转变?创建一个片段?老实说,我已经研究了如何创建片段,但是无法弄清楚如何创建这样的片段...欢迎所有的学习消息
答案 0 :(得分:1)
一个片段用于输入常用文本(即文本片段),以节省您输入新文本的时间。如果您已经有需要修改的文本,则代码片段不是答案。
为此,您希望使用查找和替换执行某些操作,尤其是使用Regular Expression查找和匹配所需的文本。
对于上面的示例,过程将类似于以下内容:
从菜单中选择public string tostrFor(int n)
{
string s = "";
for (int index = 0; index < string.Concat(n--, "").Length; index++)
{
char c = string.Concat(n--, "")[index];
s = s + c;
}
return s;
}
或使用适用于您操作系统的相应按键打开替换面板(如果您不知道,可在菜单中看到它)。
在显示底部的面板中,确保&#34;正则表达式&#34;和#34;突出显示匹配&#34;打开,&#34;保存案例&#34;被关闭了。请参阅按钮上的工具提示。
接下来,在Find > Replace...
中,输入您要查找的文字,例如:
Find What
正则表达式部分是<text>(.*)</text>
,它表示&#34;匹配任何字符序列,包括任何字符序列,并捕获(保存)您选择的内容&#34;。
当您输入文本时,如果您在缓冲区中观看,您将看到Sublime概述正在匹配的文本,因为我们打开了#34;突出显示匹配&#34;。
在(.*)
面板中,输入以下文字:
Replace With
这里神奇的部分是靠近末尾的位置<text><![CDATA[<audio preload="auto"><source src="https://www.mywebsite.com/sample.mp3"></audio>\1\?]]</text>
;说&#34;插入我们在查找字段中捕获的第一件事,然后是问号&#34 ;;文本的其余部分是您在问题中指定的内容。
如果您的示例并非真的需要在文本末尾添加问号(在您添加的示例中),那么您就不需要\1\?
部分。< / p>
现在您可以按\?
或Replace
,Replace All
的所有实例都将替换为替换字符串,除了{什么不重要} {1}}部分是因为原始行中的文本将被保留。
根据您的实际情况,您可能需要根据需要进行调整(例如,如果您的示例文字没有很好地布置或者某些内容)。
我推荐this tutorial之类的东西(我也在上面链接),以便更深入地了解正在发生的事情。特别是,这将解释为什么,为了添加问号,您需要使用<text>something</text>
而不仅仅是something
,我完全掩饰了它,因为它对读者来说是一个很好的练习。 ;)