我认为以下的基本规则只是在括号中没有包含的时段上分开,但我在将其转换为正确的正则表达式逻辑时遇到了麻烦.
我有一个像这样的字符串:
x['a.ab.w'].two['0'].three
Run Code Online (Sandbox Code Playgroud)
而我目前最好的模式是
\.(?!\w*['"]\])
Run Code Online (Sandbox Code Playgroud)
这是在javascript中,我正在尝试拆分示例字符串,使其返回为
x['a.ab.w']
two['0']
three
Run Code Online (Sandbox Code Playgroud)
上面的正则表达式我列出的情况适用于x['a.ab']但是当字符串的该部分中有2个或更多个句点时失败.这种情况下的输出是:
x['a
ab.w']
two['0']
Run Code Online (Sandbox Code Playgroud)
我可以看到一种方法,使用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"]
Run Code Online (Sandbox Code Playgroud)
使用此RegExp拆分将为您提供类似的结果,除了""在每个之前,之后和之间有额外的空条目.
RegExp的图形
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |