【发布时间】:2011-05-01 11:35:47
【问题描述】:
我需要一个正则表达式来转义或捕获(如果尚未转义)ALL 双引号字符 INSIDE 单引号字符串,然后转换开头的单引号双引号!
我们正在重构在 PHP 和 JS 文件中有很多(我的意思是很多!)单引号字符串的文件。它们唯一的共同点是字符串至少在一行中,并且在两种语言中都用 = 连接。
我举个例子(这个例子是丑陋的遗留代码,所以请不要评判它,我已经这样做了 :)) 我们有一个这样开头的文件:
var baseUrl = $("#baseurl").html();
var head = '<div id="finishingDiv" style="background-image:url({baseUrl}css/userAd/images/out_main.jpg); background-repeat: repeat-y; ">'+
'<div id="buttonbar" style="width:810px; text-align:right">';
我希望它看起来像这样:
var baseUrl = $("#baseurl").html();
var head = "<div id=\"finishingDiv\" style=\"background-image:url({baseUrl}css/userAd/images/out_main.jpg); background-repeat: repeat-y; \">" +
"<div id=\"buttonbar\" style=\"width:810px; text-align:right\">";
如您所见,未触及正确的双引号字符串。
所以我的基本问题是:我如何在某个开始和结束字符(在我的情况下是字符 ' )之间捕获一种类型的所有字符(在我的情况下是字符 " )。
这个正则表达式'.*(").*' 或'[^']*(")[^']*' 只为我每场比赛捕获一个 "。如果需要多个步骤也可以,它应该可以工作。
我会很高兴任何解决方案,IDE 特定的、语言特定的或 shell 特定的,它确实有效。
请帮助,我很绝望,非常感谢
【问题讨论】: