在句点'。'上拆分字符串。

时间:2013-07-16 03:25:38

标签: javascript regex

我认为以下内容的基本规则只是在括号中没有包含的句点上进行拆分,但是我无法将其转换为正确的正则表达式逻辑。

我有一个这样的字符串:

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']

2 个答案:

答案 0 :(得分:5)

我可以看到使用matchmap混合的方法。

"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

的图形

RegExp

答案 1 :(得分:2)

尝试以下方法:

/\.(?![\w.]*['"\]])/

这似乎适用于我正在使用的Regex测试仪。 它也适用于my JSFiddle

我只是将\w*更改为[\w.]*