Ruby, используя регулярное выражение, чтобы найти что-то между двумя строками

Использование Ruby + regex, данное:

[email protected]

Я хочу получить только: 31313131313

т.е. то, что находится между starting-middle+ и mysite.com

Вот что я до сих пор:

to = '[email protected]'

to.split(/\+/@mysite.com.*/).first.strip

Ответы

Ответ 1

Между 1-м + и 1-м @:

to[/\+(.*?)@/,1]

Между 1-м + и последним @:

to[/\+(.*)@/,1]

Между последними + и последними @:

to[/.*\+(.*)@/,1]

Между последними + и 1-м @:

to[/.*\+(.*?)@/,1]

Ответ 2

Вот решение без регулярного выражения (гораздо проще для меня читать):

i = to.index("+")
j = to.index("@")
to[i+1..j-1]