Javascript正则表达式,用于在不带括号且不带括号的文本中查找引号
背景 我需要用双引号替换简单的引号,但只有那些不是在开始和结束括号之前。我开发了一个节点脚本,用于将JavaI18n属性文件转换为Excel文件,这些文件更易于转换器使用。该脚本可以将属性文件转换为xlsx文件,然后将xlsx文件转换为属性文件。java项目资源中的引号必须加倍(关于MessageSource文档),但我不想要求翻译人员在Excel工作表中直接加倍引号 问题 我很难创建一个javascript正则表达式来查找前面没有括号、后面没有括号的简单引号 例如,我有以下文本: 约翰的车有{value}轮 正则表达式应该只返回第一个引号,而不是下面的两个引号 我需要Javascript中的这个正则表达式,问题是我不能使用“lookback”操作符,因为它不受支持 我试过这个:Javascript正则表达式,用于在不带括号且不带括号的文本中查找引号,javascript,regex,Javascript,Regex,背景 我需要用双引号替换简单的引号,但只有那些不是在开始和结束括号之前。我开发了一个节点脚本,用于将JavaI18n属性文件转换为Excel文件,这些文件更易于转换器使用。该脚本可以将属性文件转换为xlsx文件,然后将xlsx文件转换为属性文件。java项目资源中的引号必须加倍(关于MessageSource文档),但我不想要求翻译人员在Excel工作表中直接加倍引号 问题 我很难创建一个javascript正则表达式来查找前面没有括号、后面没有括号的简单引号 例如,我有以下文本: 约翰的车有{
(?!\})'(?!\{)
但是它继续捕捉“}”的信息。为什么不简单地:
[^{}]'[^{}]|[^{}]'$|^'[^{}]
如果你的例子是相关的,你可以用冷的
\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}轮子。我需要得到同样的结果。