捕捉每一次重复的小组

时间:2014-12-14 17:05:14

标签: javascript regex

我需要检查字符串是否与以下逻辑模式匹配:

string,string,string

我需要使用REGEXP,我不能使用函数。

例如,以下字符串应匹配:

hello,hola, ciao,bye -> [hello,hola,ciao,bye]

以下内容不应匹配:

hello -> []

我现在正在使用此正则表达式,但它仅适用于第一个字符串。 我在第二个例子中试图排除没有逗号的单个字符串。

([^,]+)

以下正则表达式既不能正常工作:它是否应该匹配每个组,然后在行结束之前的行结束时,必须出现逗号后跟字符串?< / p>

([^,]+)(?<=,)$

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您必须在([^,]+),?上进行匹配,并对每场比赛进行迭代。正则表达式没有“数组”的概念。

或者,您可以在,上“拆分”并完成。

答案 1 :(得分:0)

尝试以积极向前的方式做到这一点:

/\w+(?=,)/g

perl示例:

$ echo 'hello,hola, ciao,bye' | 
    perl -lne 'my @a = /\w+(?=,)/g; print join "\n", @a'
hello
hola
ciao

或使用split

$ echo 'hello,hola, ciao,bye' |
    perl -lne 'my @a = split /[,\s]+/g; print join "\n", @a'
hello
hola
ciao
bye

答案 2 :(得分:0)

我认为你在寻找的是:

^[^,]+(?:,[^,]+)+$