用逗号拆分字符串,其中逗号也是没有 RegExp 的元素

Split string by comma where comma is also a element without RegExp

我必须根据给定的字符串创建一个字母表或范围,即 new Alphabet('ax, b,c, d') 其中 ax、b、c、d 将是字母表元素列表的一部分,我必须拆分给定的字符串用逗号作为分隔符,但 , 也可以是一个元素,所以你可以做 new Alphabet(',, {, }, [, ]')。主要问题是我不应该使用 RegExp 来解决模式匹配。元素和前面的逗号之间的白色 Space 是可选的,因此它们不能用作分隔符。

我已经尝试考虑解决模式匹配的解决方案,但我无法找到不包含 RegExp 的解决方案。

如果有人可以帮助我提供一些解释解决方案的伪代码,那就太好了。

好的,这看起来与 python/Typescript 相似,而且非常粗糙。据我了解,您正在将字符串的组成部分分解为基于逗号的数组。如果您知道如何使用 RegEx,则可以将其编码为 for 循环(深思熟虑)。不管怎样,它是:

function makeAlphabet(string):
    charArray = [] // for storing alphabet
    sequence = []  // for storing symbol like 'ax'
    len = length(string)
    for( i=0, i < len, i++):
        char = string[i]
        // we hit comma and our sequence exists or we are at the end of the array
        if(char == ',' && length(sequence) > 0 || i == (len - 1)):
            // add char sequence to array 
            charArray.append(sequence)
            sequence = []
        else:
            sequence.append(char)
    return charArray

这将 return 代表每个元素的字符数组。如果需要的话,您可以将内部数组设为字符串。如果我们找到逗号,该逻辑实质上会检查我们是否有任何前面的字符。如果是这种情况,它将序列添加到数组中,否则将逗号添加到序列中。