我认为以下内容的基本规则只是在括号中没有包含的句点上进行拆分,但是我无法将其转换为正确的正则表达式逻辑。
我有一个这样的字符串:
x['a.ab.w'].two['0'].three
我目前最好的模式是
\.(?!\w*['"]\])
这是在javascript中,我正在尝试拆分示例字符串,使其返回为
x['a.ab.w']
two['0']
three
上面的正则表达式I列表适用于x['a.ab']
的情况,但是当字符串的该部分中有2个或更多个句点时失败。这种情况下的输出是:
x['a
ab.w']
two['0']
答案 0 :(得分:5)
我可以看到使用match
和map
混合的方法。
"x['a.ab.w'].two['0'].three"
.match(/(?:^|\.)((?:[^'.]*|'[^']*')+(?=\.|$))/g)
// ["x['a.ab.w']", ".two['0']", ".three"]
.map(function (e) {
if (e.charAt(0) === '.') return e.slice(1);
return e;
});
// ["x['a.ab.w']", "two['0']", "three"]
在 RegExp 中使用split会给你类似的结果,除了在每个之前,之后和之间有额外的空条目""
。
RegExp
的图形答案 1 :(得分:2)