[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: problem replacing newlines in regexp

Harry Kakueki

4/30/2007 2:16:00 AM

On 4/30/07, Mike Steiner <mikejaysteiner@gmail.com> wrote:
> I'm trying to do a gsub ( "\n" , " " ) but none of the newlines are
> replaced. Is there something special I have to do for newlines? (If it makes
> a difference, I'm running under Windows.)
>
>

Try gsub!( "\n" , " " )

Harry

--
http://www.kakueki.com/ruby...
A Look into Japanese Ruby List in English

3 Answers

Dan Zwell

4/30/2007 2:57:00 AM

0

Harry wrote:
> On 4/30/07, Mike Steiner <mikejaysteiner@gmail.com> wrote:
>> I'm trying to do a gsub ( "\n" , " " ) but none of the newlines are
>> replaced. Is there something special I have to do for newlines? (If it
>> makes
>> a difference, I'm running under Windows.)
>>
>>
>
> Try gsub!( "\n" , " " )
>
> Harry
>

You've probably gotta specify the multiline match option (the /m at the
end):
line.gsub!(/\n/m, " ")

Dan

Harry Kakueki

4/30/2007 3:10:00 AM

0

On 4/30/07, Dan Zwell <dzwell@gmail.com> wrote:
> Harry wrote:
> > On 4/30/07, Mike Steiner <mikejaysteiner@gmail.com> wrote:
> >> I'm trying to do a gsub ( "\n" , " " ) but none of the newlines are
> >> replaced. Is there something special I have to do for newlines? (If it
> >> makes
> >> a difference, I'm running under Windows.)
> >>
> >>
> >
> > Try gsub!( "\n" , " " )
> >
> > Harry
> >
>
> You've probably gotta specify the multiline match option (the /m at the
> end):
> line.gsub!(/\n/m, " ")
>
> Dan
>
>
I just noticed the subject said regexp, not string. oops.
Mike, would you post some code?
It will make it easier to understand what you are trying to do.

Harry

--
http://www.kakueki.com/ruby...
A Look into Japanese Ruby List in English

Dan Zwell

4/30/2007 7:14:00 PM

0

Mike Steiner wrote:
> Okay, here's the birds-eye view:
>
> I'm converting some database data from pure text to CSV format, and I need
> to replace the newlines with something else (a space or a slash).
>
> Sample input record:
>
> Field1=value1
> Field2=value2
> more stuff in Field2
> ---------- # end-of-record separator
>
> Sample output record:
>
> FIELD1,FIELD2
> value1,value2 / more stuff in Field2
>
>
> Does that help?
>
> And the /m option only changes how "." is treated in a regexp, right?
>
> Can I use somestring.gsub ( /$/ , " " ) instead of somestring.gsub ( /\n/ ,
> " " )?
>

I guess you're right that /m isn't useful here. But gsub(/\n/, " ") does
seem to do what you want. And you can't use /$/ here because when you
try to substitute for $, it doesn't actually replace the end of the
line, but adds to it (so what you wrote adds a space to the end of each
line).

Dan