Problem replacing newlines in regexp

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.)

Thanks,
Mike Steiner

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

Harry

···

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.)

--

A Look into Japanese Ruby List in English

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

···

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

--

A Look into Japanese Ruby List in English

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/ ,
" " )?

···

On 4/29/07, Harry <list.push@gmail.com> wrote:

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/list.html
A Look into Japanese Ruby List in English

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