2016-03-22 7 views
-1

Wie bekomme ich eine zweite Mail-Adresse von unten Zeichenketten.
Meine Funktion bekomme nur die erste E-Mail.
Weiß jemand, wie man mit Ruby eine zweite Gruppe bekommt?Wählen Sie die zweite Übereinstimmung Regex mit Ruby

tmm = "[email protected]: XY [email protected]" 
tmm2 = "[email protected]: XY [email protected]" 
tmm3 = "[email protected]: XY [email protected]" 

wynx = tmm.match(/([a-zA-Z0-9][email protected][A-Za-z0-9.]+)/i) 
$LOG.error ":::::::::::#{wynx[0]}" //[email protected] 
$LOG.error "+++++++++++#{wynx[1]}" //[email protected] 
+1

Ich habe keine Ruby-Interpreter praktisch, dies zu versuchen, wie ich bei der Arbeit , aber versuche tmm.match (/ ([a-zA-Z0-9] + @ [A-Za-z0-9.] +)/i) [2]. Sollte das zweite Spiel zurückgeben. –

+0

'str.split.last' arbeitet mit den von Ihnen angegebenen Strings:' "[email protected]: XY [email protected]" .split.last' => '" [email protected] "' – Anthony

+0

Die Regex-Übereinstimmung gibt die gleiche Zeichenfolge in beiden Elementen zurück – JLB

Antwort

1

Verwenden String#scan

tmm = "[email protected]: XY [email protected]" 

wynx = tmm.scan(/[\.a-zA-Z0-9][email protected][\.A-Za-z0-9]+/i) 
wynx[1] 
#=> "[email protected]" 
+0

Was? Der erste ist 'F91EBC8A89CACD4882737A0AA020847501DD6 @ exchange.wp.pl' und der zweite ist' pawel.brodo @ buziaczek.pl'. 'wynx' ist ein Array dieser beiden Adressen! – Babar

+0

"[email protected]"! = [email protected] – Anthony

+0

Ändern Sie die Regex in '/ [a-zA-Z0-9.] + @ [A-Za-z0-9.] +/I' und es wird funktionieren. Beachten Sie den hinzugefügten Punkt in der ersten Zeichenklasse (wie in der zweiten Zeichenklasse). Der Rest ist der gleiche. – DRSE

Verwandte Themen