"peter,nick,jake,jack"
我需要这样的东西。
我不能在这个词之后有任何空格,例如,
"peter,," "peter," "peter,,nick "
都不正确。
它必须只是一个单词,例如"peter"
或单词后跟逗号然后单词("peter,nick"
)
答案 0 :(得分:1)
首先确认该字符串具有所需的结构。
r = /
\A # match the beginning of the string
[[:alpha:]]+ # match > 0 letters
(?:,[[:alpha:]]+) # match a comma then > 0 letters in a non-capture group
* # match the preceding non-capture group >= 0 times
\z # match end of the string
/x # free-spacing regex definition mode
str = "peter,nick,jake,jack"
str =~ r #=> 0
由于它与正则表达式匹配,只需在逗号上拆分以返回单词数组。
str.split(',') #=> ["peter", "nick", "jake", "jack"]
相比之下:
"peter,nick,,jake,jack" =~ r #=> nil
"peter,nick,jake, jack" =~ r #=> nil
"peter,nick,jake,jack " =~ r #=> nil
"peter ispeter,nick" =~ r #=> nil
我认为字符串必须至少包含一个字母。