# Regular Expression question

Hello,

Im working with regular expressions and I cant quite understand how the
“13” is extracted from the string.

Here is the irb output:
irb(main):005:0> “(13)”[1…-2].to_i
=> 13

I dont understadn how the [1…-2] parameter removes the parenthases from
the string.

In message [email protected], Al Cholic
writes:

Im working with regular expressions and I cant quite understand how the
“13” is extracted from the string.
Here is the irb output:
irb(main):005:0> “(13)”[1…-2].to_i
=> 13
I dont understadn how the [1…-2] parameter removes the parenthases from
the string.

“(13)”[0] = “(”
“(13)”[1] = “1”
“(13)”[2] = “3”
“(13)”[3] = “)”

“(13)”[-1] = “)”
“(13)”[-2] = “3”
“(13)”[-3] = “1”
“(13)”[-4] = “(”

“-N” counts from the end, starting with -1.

-2 is the character just before the end (the 3). 1 is the character
just after
the beginning (the 1).

From “just after the beginning” to “just before the end” is the string
without
the parentheses.

However, I must correct you: You are not working with regular
expressions.
There are no regular expressions here, only array slices.

-s

“(13)”[0] = “(”
“(13)”[1] = “1”
“(13)”[2] = “3”
“(13)”[3] = “)”

“(13)”[-1] = “)”
“(13)”[-2] = “3”
“(13)”[-3] = “1”
“(13)”[-4] = “(”

“-N” counts from the end, starting with -1.

Thanks. An the … in [1…-2] means “keep everything in between” ?

In message [email protected], Al Cholic
writes:

Thanks. An the … in [1…-2] means “keep everything in between” ?

Right.

So, “hello, world!”[1…-2] => “ello, world”

-s

unknown wrote:

In message [email protected], Al Cholic
writes:

Thanks. An the … in [1…-2] means “keep everything in between” ?

Right.

So, “hello, world!”[1…-2] => “ello, world”

-s

Thank you very much.

In message
[email protected], “Robert
Dober” writes
:

Maybe it would not hurt to add a little clarification, albeit the fact
that your didactic simplification has worked very well :). Especially
as this concerns a FAQ

Oops, doh!

You are correct, of course.

-s

On 6/30/07, Peter S. [email protected] wrote:

“(13)”[1] = “1”
“(13)”[2] = “3”
“(13)”[3] = “)”

“(13)”[-1] = “)”
“(13)”[-2] = “3”
“(13)”[-3] = “1”
“(13)”[-4] = “(”
Maybe it would not hurt to add a little clarification, albeit the fact
that your didactic simplification has worked very well :). Especially
as this concerns a FAQ

In reality
“(13)”[0] => ?( which equals 40
and
“(13)”[0…0] => “(”

Cheers
Robert