如何在Sublime Text 2文档中找到带有单引号的所有属性并用双引号替换?

时间:2012-11-14 16:58:24

标签: regex sublimetext2

我今天感觉特别挑剔。我正在使用一些HTML文档,这些文档通过文档围绕所有属性值使用单引号,如下所示:

<div class='classone classtwo'>

我希望能够在每个文档中进行查找和替换,并用双引号替换,如下所示:

<div class="classone classtwo">

文档中的许多元素都有多个属性:

<div class='classone classtwo' data-scripts='lazyload'>

有些人会有正确的双引号:

<div class='classone classtwo' data-scripts="lazyload">

用double替换所有包含值的单引号的最佳方法是什么?

3 个答案:

答案 0 :(得分:4)

执行“替换”操作,我可能会尝试这样简单的事情:

查找内容:=\s*'(.*?)'
替换为:="$1"

确保启用正则表达式切换按钮(.*

在SublimeText2中执行此操作的好处是,它会在您执行替换之前立即显示哪些部分将匹配。因此正则表达式不必是完全正确的。

答案 1 :(得分:0)

在Ruby中我会使用正则表达式:

ruby-1.9.2-p290 :001 > s = "<div class='classone classtwo' data-scripts='lazyload'>"
 => "<div class='classone classtwo' data-scripts='lazyload'>" 
s.gsub(/=\s?'([^']+)'/,"=\"#{$1}\"")
=> "<div class=\"lazyload\" data-scripts=\"lazyload\">"

这一切归结为捕获两个''中的所有内容:

'([^'])'

并使用“”返回捕获的匹配。

答案 2 :(得分:0)

如果除了标签之外的任何地方没有单引号,并且您想要全部替换它们,这会更快:

突出显示文档中任何位置的任何单引号。

Alt + F3

输入