[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

String substitution?

Roberto Rivera

4/27/2007 9:44:00 PM

Hello,

Im working on a small rails app that uses a text editor component
(FCKEdit). In certain cases, the editor will add characters to my string
that I need to remove before I show the output.

For example, it will add '\' in front of any '"' or '\' in my document.

I was checking out String.replace and String.gsub, but they both seem to
replace any element that matches the input string.

"hello".gsub(/[aeiou]/, '*') #=> "h*ll*"

In my particular case, I need it to match the whole string for
substitution.

I worked out this code in order to substitute '\"' for '"' and '\\' for
'\':

<%= text.split('\"').join('"').split("\\\\").join("\\") %>

Im sure there's gotta be some other way to make it work without breaking
it into arrays and rejoining.

Any help will be appreciated.
az

--
Posted via http://www.ruby-....

2 Answers

Robert Dober

4/27/2007 9:55:00 PM

0

On 4/27/07, Roberto Rivera <roberto.rivera@gmail.com> wrote:
> Hello,
>
> Im working on a small rails app that uses a text editor component
> (FCKEdit). In certain cases, the editor will add characters to my string
> that I need to remove before I show the output.
>
> For example, it will add '\' in front of any '"' or '\' in my document.
>
> I was checking out String.replace and String.gsub, but they both seem to
> replace any element that matches the input string.
>
> "hello".gsub(/[aeiou]/, '*') #=> "h*ll*"
>
> In my particular case, I need it to match the whole string for
> substitution.
>
> I worked out this code in order to substitute '\"' for '"' and '\\' for
> '\':
>
> <%= text.split('\"').join('"').split("\\\\").join("\\") %>
First of all there is nothing wrong with this(1), I like it a lot,
however as you have asked;)

text.gsub('\"','"').gsub("\\\\","\\")

might indeed be considered a little bit more concise.

Funny how this pattern just matches my previous post in the string
replacement thread.

HTH
Robert
(1) With the exception of a trailing \" or \\"
>
> Im sure there's gotta be some other way to make it work without breaking
> it into arrays and rejoining.
>
> Any help will be appreciated.
> az
>
> --
> Posted via http://www.ruby-....
>
>


--
You see things; and you say Why?
But I dream things that never were; and I say Why not?
-- George Bernard Shaw

Roberto Rivera

4/27/2007 10:20:00 PM

0

Robert Dober wrote:
> On 4/27/07, Roberto Rivera <roberto.rivera@gmail.com> wrote:
>>
>> "hello".gsub(/[aeiou]/, '*') #=> "h*ll*"
>>
>> In my particular case, I need it to match the whole string for
>> substitution.
>>
>> I worked out this code in order to substitute '\"' for '"' and '\\' for
>> '\':
>>
>> <%= text.split('\"').join('"').split("\\\\").join("\\") %>
> First of all there is nothing wrong with this(1), I like it a lot,
> however as you have asked;)
>
> text.gsub('\"','"').gsub("\\\\","\\")
>
> might indeed be considered a little bit more concise.
>
> Funny how this pattern just matches my previous post in the string
> replacement thread.
>
> HTH
> Robert
> (1) With the exception of a trailing \" or \\"

Indeed, I was trying to get a more concise alternative. Yours is
perfect.
Thanks

--
Posted via http://www.ruby-....