From: James Gray Date: 2008-05-01T23:19:37+09:00 Subject: Re: Regexp help needed On May 1, 2008, at 3:41 AM, Brubix wrote: > I have some text documents containing series of questions and answers. > I need to extract all questions and answers to load a database. > No problem in reading the text document or writing to the database. > I need help with the regexps to parse the document (please note that > some questions and answers extend on two or more lines). I would probably do it without leaning on regular expressions in this case: #!/usr/bin/env ruby -wKU DATA.each("") do |qna| answers = qna.to_a question = answers.shift question << answers.shift until question.strip[-1] == ?? puts "Question: #{question}" puts "Answers:" puts answers end __END__ *1) Is this the first question ? a. Yes b. No *2) Is this question composed of two lines ? a. Yes, indeed b. Maybe c. I dont' know If you really want the regular expression though, this seems to work: #!/usr/bin/env ruby -wKU DATA.read.scan(/^(\*\d+\) [\s\S]+?\?) *\n((?:^[a-z]. .+?\n)+)/m) do |q, a| puts "Question: #{q}" puts "Answers:" puts a.to_a end __END__ *1) Is this the first question ? a. Yes b. No *2) Is this question composed of two lines ? a. Yes, indeed b. Maybe c. I dont' know Hope that helps. James Edward Gray II