2016-05-16 10 views
1

So habe ich diesen einfachen Text:Get Link von Text

To activate your account click the link below: 
https://tbeyfee-gkg9834636j-gergity3yu3hgge-drgengo9476y3ltjne 
If the above URL does not work try copying and pasting it into your browser. If you continue to have problem please feel free to contact us. 
If you have any questions, please do not hesitate to contact your account manager directly or email us at [email protected] and we'll get right back to you. 
Thanks again for choosing logger. 
Kind regards, 
The Logger Team 

Was die einfache Möglichkeit wäre, diesen https Link zu fangen?

Dies ist, was ich versuche haben:

val str = "" // This is my string. 
val pattern = new Regex("^https.*$") 

println(pattern.findAllIn(str)) 
+0

hier ist 1: '^ https. * $' – ritesht93

+0

Sind Sie mit dem Scala-Code oder mit der Regex fest? Siehe http://stackoverflow.com/questions/3809401/what-isa-a-good-regular-expression-to-match-a-url für eine Regex. –

+0

Bitte beachten Sie mein Update. –

Antwort

2

Sie die mehrzeilige Modifikator (?m) mit Ihrem regex verwenden können, die ^ und $ entsprechen den Anfang und das Ende einer Linie anstelle einer ganzen String machen:

var str = "To activate your account click the link below:\nhttps://tbeyfee-gkg9834636j-gergity3yu3hgge-drgengo9476y3ltjne\nIf the above URL does not work try copying and pasting it into your browser. If you continue to have problem please feel free to contact us.\nIf you have any questions, please do not hesitate to contact your account manager directly or email us at [email protected] and we'll get right back to you.\nThanks again for choosing logger.\nKind regards,\nThe Logger Team" 
val pattern = new Regex("(?m)^https://.+$") 
val res = pattern.findFirstIn(str) 
println(res) 

Siehe Ideone demo

Ich schlage auch * (0 oder mehr Vorkommen) Quantifizierer mit + übereinstimmen 1 oder mehrere Vorkommen von jedes Zeichen, sondern ein Neue-Zeile- (mit .) ersetzt wird. Sie können auch https?://\S+ verwenden, um die meisten URLs in größeren Texten abzugleichen.

Da Sie nur 1 URL benötigen, empfehle ich die Verwendung von findFirstIn anstelle von findAllIn (siehe Scala Regex reference).