2010-11-18 20 views

risposta

30

Tra il 1 ° + e 1 ° @:

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

Tra il 1 ° + e ultimo @:

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

Tra ultima + e ultimo @:

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

Tra ultima + e 1 ° @:

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

molto bello, grazie per l'aiuto rapido. – AnApprentice

+0

in [/\+(.*?)@/, 1] - Il numero 1 è per la prima corrispondenza trovata nella stringa? – stack1

+2

@ stack1, sì è per ciò che è ** all'interno del primo '()' **. Proprio come '.match (//) [1]' o '.match (//). Group (1)' in alcune altre lingue. Di solito si sta recuperando la singola sottostringa quando si applica regex, quindi ', 1' è piuttosto comune in Ruby. – Nakilon

3

Ecco una soluzione senza regex (molto più facile per me leggere):

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

funziona, ma le sue troppe righe di codice :) btw, dove ricevi le domande per il tuo sito web del codequizzes? – stack1

+0

@ stack1- Compongo tutte le domande su CodeQuizzes :) – Powers

Problemi correlati