[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

search pattern

Li Chen

1/10/2008 9:29:00 PM

Hi all,

I have a Ruby script as follow. What I try to do is to find a pattern in
the string and report its position. I wonder how to get the position of
pattern in the string.

Thank you in advance,

Li



seq="5'aaaAAAAAACCCCCCCCTTTTTTTGGGGGGGGG-3'"

seq.upcase!# change to upper case
puts "old sequence:"
puts seq.gsub!(/[^A-Z]/,'')# extract the string
puts pattern if seq=~/AC/

#how to get the position of pattern in the string?
--
Posted via http://www.ruby-....

7 Answers

Stefano Crocco

1/10/2008 9:39:00 PM

0

Alle gioved=C3=AC 10 gennaio 2008, Li Chen ha scritto:
> Hi all,
>
> I have a Ruby script as follow. What I try to do is to find a pattern in
> the string and report its position. I wonder how to get the position of
> pattern in the string.
>
> Thank you in advance,
>
> Li
>
>
>
> seq=3D"5'aaaAAAAAACCCCCCCCTTTTTTTGGGGGGGGG-3'"
>
> seq.upcase!# change to upper case
> puts "old sequence:"
> puts seq.gsub!(/[^A-Z]/,'')# extract the string
> puts pattern if seq=3D~/AC/
>
> #how to get the position of pattern in the string?

String=3D~ returns the position of the starting of the match, so

seq=3D~pattern

will return what you want.

Stefano

Li Chen

1/10/2008 10:53:00 PM

0

Stefano Crocco wrote:
> Alle giovedì 10 gennaio 2008, Li Chen ha scritto:
>>
>>
>> seq="5'aaaAAAAAACCCCCCCCTTTTTTTGGGGGGGGG-3'"
>>
>> seq.upcase!# change to upper case
>> puts "old sequence:"
>> puts seq.gsub!(/[^A-Z]/,'')# extract the string
>> puts pattern if seq=~/AC/
>>
>> #how to get the position of pattern in the string?
>
> String=~ returns the position of the starting of the match, so
>
> seq=~pattern
>
> will return what you want.
>
> Stefano
The size if seq is 33. What I try to do is starting position of "AC" in
the seq.

How do I calculate the position of it?

Thanks,

Li

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

Siep Korteling

1/10/2008 11:35:00 PM

0

Li Chen wrote:
>> seq=~pattern
>>
>> will return what you want.
>>
>> Stefano
> The size if seq is 33. What I try to do is starting position of "AC" in
> the seq.
>
> How do I calculate the position of it?
>
> Thanks,
>
> Li
You're so close.

seq="5'aaaAAAAAACCCCCCCCTTTTTTTGGGGGGGGG-3'"

seq.upcase!# change to upper case
puts "old sequence:"
puts seq.gsub!(/[^A-Z]/,'')# extract the string
puts position = seq=~/AC/
#The counting starts at zero. Or use the more simple but less powerfull
puts position = seq.index("AC")

regards,

Siep



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

Sebastian Hungerecker

1/11/2008 12:29:00 PM

0

Li Chen wrote:
> Stefano Crocco wrote:
> > String=~ returns the position of the starting of the match, so
> >
> > seq=~pattern
> >
> > will return what you want.
>
> The size if seq is 33. What I try to do is starting position of "AC" in
> the seq.
>
> How do I calculate the position of it?

For some reason I have the Jeopardy melody in my head now...
Anyway:

>> seq="AACGTGTAGGCTTGAAA"
=> "AACGTGTAGGCTTGAAA"
>> pattern = /TA/
=> TA
>> position = seq =~ pattern
=> 6
>> seq[position,2]
=> "TA"
>> seq[position..-1]
=> "TAGGCTTGAAA"
>> seq[pattern]
=> "TA"


HTH,
Sebastian
--
Jabber: sepp2k@jabber.org
ICQ: 205544826

Li Chen

1/11/2008 6:24:00 PM

0

Hi all,

Thank you all for the help.

Now I have a question: is it possible in Ruby to highlight or underscore
or use different font size for the found pattern?

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

Sebastian Hungerecker

1/11/2008 6:33:00 PM

0

Li Chen wrote:
> Now I have a question: is it possible in Ruby to highlight or underscore
> or use different font size for the found pattern?

That depends on how/where you output the data, obviously. If you're writing a
GUI app or a webpage you can, of course, go as crazy with the font as you
want to.
In terminal apps you don't have control about font size or face. Changing
color, inverting color or underlining is possible, but terminal dependant
(specifically I don't think the terminal in Windows handles ANSI escape
sequences). There probably are gems to abstract away the differences between
platforms, though.


HTH,
Sebastian
--
NP: Nevermore - I Am The Dog
Jabber: sepp2k@jabber.org
ICQ: 205544826

Li Chen

1/11/2008 7:59:00 PM

0

Sebastian Hungerecker wrote:
> Li Chen wrote:
>> Now I have a question: is it possible in Ruby to highlight or underscore
>> or use different font size for the found pattern?
>
> That depends on how/where you output the data, obviously. If you're
> writing a
> GUI app or a webpage you can, of course, go as crazy with the font as
> you
> want to.
> In terminal apps you don't have control about font size or face.
> Changing
> color, inverting color or underlining is possible, but terminal
> dependant
> (specifically I don't think the terminal in Windows handles ANSI escape
> sequences). There probably are gems to abstract away the differences
> between
> platforms, though.
>
>
> HTH,
> Sebastian

Thank you so much,

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