Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
434 views
in Technique[技术] by (71.8m points)

ruby - Unexpected keyword_end error, yet syntax seems fine

This function is supposed to pull names from a Comma Separated Values file, and place them into an array.

def xprt_csv_to_ary(csv_file)
    namecatcher_regex = "/^[.{1}]([A-Z]+).{3}/" # Matches up to char before next name
    current_word = 0
    names_array = []
    while current_word < 5000
        if current_word == 0
            name = csv_file.readline.match(namecatched_regex)
        else
            name = csv_file.past_match.match(namecatcher_regex)
        end
        names_array[current_word] = name
        current_word ++
    end
    return names_array
end

I'm getting the following error:

syntax error, unexpected keyword_end

I would be as happy to be referred to an existing question that solves my problem as to have someone answer me directly.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Your error comes from line:

current_word ++

There's no such syntax in Ruby. It should be:

current_word += 1

What's more, you create your regexp incorrectly. It should be:

namecatcher_regex = /^[.{1}]([A-Z]+).{3}/

There may be some other errors that I didn't notice.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...