From: Rob Biedenharn Date: 2007-06-20T23:36:53+09:00 Subject: Re: trying to use regex On Jun 20, 2007, at 4:41 AM, Alex Gutteridge wrote: > On 20 Jun 2007, at 17:15, merrittr wrote: >> hi i am trying to strip out text between body tags but when run it i >> get: >> >> rob@rob-laptop:~/ruby$ ./html2.rb >> ./html2.rb:14: unknown regexp options - bdy >> ./html2.rb:14: unterminated string meets end of file >> ./html2.rb:14: parse error, unexpected tSTRING_END, expecting >> tSTRING_CONTENT or tREGEXP_END or tSTRING_DBEG or tSTRING_DVAR >> >> #! /usr/bin/ruby >> >> @h = File.open "test.html" >> @response = @h.gets >> >> text = @response.scan(/]*>(.+?)/)[0] >> puts text > > You need to escape the '/' in your regexp, and unless your html > file is one line you may need to also add the multiline option: > > text = @response.scan(/]*>(.+?)<\/body>/m)[0] > > Alex Gutteridge > > Bioinformatics Center > Kyoto University Or you can use the %r{} form of a Regexp literal: text = @response.scan(%r{(.*?)}mi)[0] \b matches a "word boundary" m is the multi-line option that causes . to match newlines, too i is the case insensitive option (so BODY would also be matched) -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com