2016-05-16 3 views
1

Так у меня есть этот простой текст:Получить ссылку с текстом

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 

Что бы простой способ поймать эту https ссылку?

Это то, что я есть попробовать:

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

println(pattern.findAllIn(str)) 
+0

здесь 1: '^ https. * $' – ritesht93

+0

Вы застряли с кодом Scala или с регулярным выражением? См. Http://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url для регулярного выражения. –

+0

См. Мое обновление. –

ответ

2

Вы можете использовать многострочный модификатор (?m) с вашим регулярным выражением, которое сделает ^ и $ соответствовать начало и конец линии вместо целого строки:

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) 

См Ideone demo

Я также предлагает заменить * (0 или более появлений) кванторное с +, чтобы соответствовать 1 или более вхождений любой символ новой строки, но.). Кроме того, вы можете использовать https?://\S+ для соответствия большинству URL-адресов внутри больших текстов.

Поскольку вам нужен только 1 URL-адрес, я предлагаю использовать findFirstIn вместо findAllIn (см. Scala Regex reference).

Смежные вопросы