使用Regex [复制]转义单个带引号的字符串中的所有双引号
可能重复:
正则表达式以在单引号内转义双引号
我需要一个正则表达式(没有其他语言!!,最好是perl语法REGEX或PCRE语法REGEX)来替换所有双引号
"
和一个"
在单引号字符串中。这是一个示例字符串(文件的一部分):
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">';
(请注意:它们不必与“someValueBetween”配对,因此可能在一个单引号字符串中存在不均匀的双引号数。)
这应该是上一行的最终结果:
'<div id="buttonbar" style="width:810px; text-align:right">';
提前致谢
***更新:
为了说清楚,我只想要一个正则表达式,而不是一个perl程序。正则表达式可以是perl regex语法或PHP PCRE语法(根据我的理解,这是一种非常接近perl regex语法的语法)。目标是你可以在搜索中运行IDES中的正则表达式并替换支持正则表达式的菜单(如Eclipse和PhpEd f.e)!!
换句话说,我想要一个正则表达式,我将放在搜索IDE字段中,结果是在单引号字符串中给出了我所有未转义的"
。在eclipse的替换领域,我可以放入$1
来逃避它们。
他们应该在Regexbuddy或regex教练工作,所以我可以测试他们。
至少那是计划:)
没有找到相关结果
已邀请:
3 个回复
吐兄
如果你想在未转义的单引号之间转义未转义的双引号,并且你只有一对这样的单引号,请执行以下操作:
但是,如果每行可能有多组配对的未转义单引号,并且您只想逃避那些未转义的单引号之间的未转义双引号,那么执行以下操作:
请注意,这一切都预先假定您没有包含未转义单引号的合法配对非转义双引号。即使是这样的事情也会让你失望:
但是,您可能希望使用正确的解析模块。 请不要注意所有花哨和欺骗性不正确的SO着色。出于某种原因,它似乎无法解析Perl以及perl。无法想象为什么。 ☺
苦诫
替换:
(这假设每个撇号都用作引号;它们都不需要被忽略,因为它们在注释,双引号字符串或其他内容中;文本中已经没有转义引号(单引号或双引号);而这样的例子不胜枚举。)
(上一个匹配的锚点)是必不可少的,但这是一个功能,即使是一些比较流行的正则表达式风格,如JavaScript和Python也不支持。当无法匹配时,占有量词(
,
)可以使正则表达式停滞不前;它们可用于PCRE,Oniguruma,Perl 5.10+和Java。 .NET没有它们,但它确实有一些有点笨拙的替代原子组。 我建议你忘记泛型正则表达式方法,并在具有所需功能的工具集上进行标准化。出于一般目的,我认为没有任何东西胜过JGSoft系列工具:EditPad Pro,PowerGrep和RegexBuddy。在功能和性能方面,JGSoft正则表达式的味道和其他任何东西一样好;它缺少的是递归匹配和嵌入代码功能。 附:我看到你在评论中提到了Eclipse;我没有安装它,但我希望它使用Java的正则表达式风格(或者可能是ICU风格,其语法几乎与Java相同),因此上面的正则表达式应该适用于它。
弛保矮瘦敖