Javascript正则表达式,用于在不带括号且不带括号的文本中查找引号

Javascript正则表达式,用于在不带括号且不带括号的文本中查找引号,javascript,regex,Javascript,Regex,背景 我需要用双引号替换简单的引号,但只有那些不是在开始和结束括号之前。我开发了一个节点脚本,用于将JavaI18n属性文件转换为Excel文件,这些文件更易于转换器使用。该脚本可以将属性文件转换为xlsx文件,然后将xlsx文件转换为属性文件。java项目资源中的引号必须加倍(关于MessageSource文档),但我不想要求翻译人员在Excel工作表中直接加倍引号 问题 我很难创建一个javascript正则表达式来查找前面没有括号、后面没有括号的简单引号 例如,我有以下文本: 约翰的车有{

背景

我需要用双引号替换简单的引号,但只有那些不是在开始和结束括号之前。我开发了一个节点脚本,用于将JavaI18n属性文件转换为Excel文件,这些文件更易于转换器使用。该脚本可以将属性文件转换为xlsx文件,然后将xlsx文件转换为属性文件。java项目资源中的引号必须加倍(关于MessageSource文档),但我不想要求翻译人员在Excel工作表中直接加倍引号

问题

我很难创建一个javascript正则表达式来查找前面没有括号、后面没有括号的简单引号

例如,我有以下文本:

约翰的车有{value}轮

正则表达式应该只返回第一个引号,而不是下面的两个引号

我需要Javascript中的这个正则表达式,问题是我不能使用“lookback”操作符,因为它不受支持

我试过这个:

(?!\})'(?!\{)
但是它继续捕捉“}”的信息。

为什么不简单地:

[^{}]'[^{}]|[^{}]'$|^'[^{}]

如果你的例子是相关的,你可以用冷的

\b'\b
var str=“约翰的车有{value}个轮子。”;
document.write(“应该只有一个:”+str.match(/\b'\b/g));

document.write(“
应该是全部:“+str.match(/”/g))
似乎您只需要匹配以
'{
开头的任何子字符串,然后使用除大括号以外的任何字符,以
}'
结尾的任何子字符串,并跳过这些匹配,然后在任何其他上下文中匹配
'
,以替换为

像这样在
replace
内部使用回调

var s=“约翰的车”有{value}个轮子。”;
s=s.replace(/({[^{}]*}')|'/g,函数($0,$1){返回$1?$1:'“;”});

控制台日志
你能给我们看一下你的代码和尝试吗?你想怎么处理这个孤独的'?我想如果目标是匹配一个用字符括起来的
,那就行了。现在还不清楚,试试吧,很高兴它对你有用。如果我的答案对你有帮助,请考虑一下投票。我也需要前面的空格或后面的空格。如果我有文本:>约翰的车有{value}轮子。我需要得到同样的结果。