使用正则表达式来转义单引号内的双引号
我需要一个正则表达式来逃避或捕获(如果尚未转义)所有双引号字符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,这些都是可行的。
请帮忙,我绝望,非常感谢
没有找到相关结果
已邀请:
2 个回复
室邢
此代码采用stdin上的任何内容/文件参数的内容,查找单引号字符串(考虑到可能存在的
和
),然后,为了替换它,在匹配的字符串中运行一系列替换(消毒反斜杠等)。结果打印到stdout。如果您想要更自动化的方法,请将第一行替换为
;然后,无论文件参数如何呈现,都会在其中破坏性地对其进行替换。旧文件保留了额外的
扩展名。 要运行此代码,如果您之前没有使用过Ruby:将其保存为任何内容,例如
;跑
;然后运行
。
响摔衅幸
。这就是说,”捕获一个或多个这种模式:双引号如下零个或多个任何字符。“