我今天感觉特别挑剔。我正在使用一些HTML文档,这些文档通过文档围绕所有属性值使用单引号,如下所示:
<div class='classone classtwo'>
我希望能够在每个文档中进行查找和替换,并用双引号替换,如下所示:
<div class="classone classtwo">
文档中的许多元素都有多个属性:
<div class='classone classtwo' data-scripts='lazyload'>
有些人会有正确的双引号:
<div class='classone classtwo' data-scripts="lazyload">
用double替换所有包含值的单引号的最佳方法是什么?
答案 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 。
输入“。