/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.regex.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String s
= "some@domain.com\n domain.com\n www.domain.com\n http://w...content-available-to-author-only...n.com\n https://w...content-available-to-author-only...n.com" ; Matcher m = Pattern.compile ( "(?i)\\ S+@\\ S+\\ .\\ S+|((?:https?://)?(?:[a-z0-9-]+[.])*[a-z0-9-]+[.][a-z]+/?[^\\ s()<>]*)" ) .matcher ( s) ;
while ( m.find ( ) ) {
if ( m.group ( 1 ) != null ) {
m.appendReplacement ( result, "<a href=\" " + m.group ( 1 ) + "\" >" + m.group ( 1 ) + "</a>" ) ;
}
else {
m.appendReplacement ( result, m.group ( ) ) ;
}
}
m.appendTail ( result) ;
System .
out .
println ( result.
toString ( ) ) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgcyA9ICJzb21lQGRvbWFpbi5jb21cbmRvbWFpbi5jb21cbnd3dy5kb21haW4uY29tXG5odHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ubi5jb21cbmh0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ubi5jb20iOwoJCVN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CgkJTWF0Y2hlciBtID0gUGF0dGVybi5jb21waWxlKCIoP2kpXFxTK0BcXFMrXFwuXFxTK3woKD86aHR0cHM/Oi8vKT8oPzpbYS16MC05LV0rWy5dKSpbYS16MC05LV0rWy5dW2Etel0rLz9bXlxccygpPD5dKikiKS5tYXRjaGVyKHMpOwoJCXdoaWxlIChtLmZpbmQoKSkgewogICAgCQlpZiAobS5ncm91cCgxKSAhPSBudWxsKSB7CiAgICAJCQltLmFwcGVuZFJlcGxhY2VtZW50KHJlc3VsdCwgIjxhIGhyZWY9XCIiICsgbS5ncm91cCgxKSArICJcIj4iICsgbS5ncm91cCgxKSArICI8L2E+Iik7CiAgICAJCX0KICAgIAkJZWxzZSB7CiAgICAJCQltLmFwcGVuZFJlcGxhY2VtZW50KHJlc3VsdCwgbS5ncm91cCgpKTsKICAgIAkJfQoJCX0KCQltLmFwcGVuZFRhaWwocmVzdWx0KTsKCQlTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0LnRvU3RyaW5nKCkpOwoKCX0KfQ==