我需要检查字符串是否与以下逻辑模式匹配:
string,string,string
我需要使用REGEXP,我不能使用函数。
例如,以下字符串应匹配:
hello,hola, ciao,bye -> [hello,hola,ciao,bye]
以下内容不应匹配:
hello -> []
我现在正在使用此正则表达式,但它仅适用于第一个字符串。 我在第二个例子中试图排除没有逗号的单个字符串。
([^,]+)
以下正则表达式既不能正常工作:它是否应该匹配每个组,然后在行结束之前的行结束时,必须出现逗号后跟字符串?< / p>
([^,]+)(?<=,)$
有什么想法吗?
答案 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)
我认为你在寻找的是:
^[^,]+(?:,[^,]+)+$