2016-06-13 4 views
-2

나는 채팅 기능을하고 있는데, 우리 회사는 URL이 포함되어 있는지 여부를 채팅 내용을 감지하도록 요청 했습니까? 그런 다음 URL을 강조 표시하고 클릭하면 URL 웹 사이트로 이동할 수 있습니다. 저를 도와 줄 수 있습니까? 고맙습니다.URL이 포함 된 문자열을 감지하는 방법이 있습니까?

+0

regex public static final String'URL_REGEX = "^ ((https? ftp) : // | (www | ftp) \\.)? [a-z0-9-] + (\\. [ a - z0-9 -] +) + ([/?]. *)? $ "; ' –

+0

다음 답변을 확인하십시오. http://stackoverflow.com/questions/6910703/android-active-link-of-url -in- textview –

답변

2
당신은 당신의 자신의 정규식을 사용하거나이 같은 android.Text.util.Linkify 클래스 사용 할 수

: 당신이 자동으로 전화 번호, 이메일 등을 확인하게하려면

TextView textContent; 
String content; 
textContent.setText(content); 
Linkify.addLinks(textContent, Linkify.WEB_URLS); 

을 . Linkify.ALL 두 번째 매개 변수에 사용할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 귀하의 방법은 안드로이드 시스템의 자동 감지입니다. 특정 탐지 방법을 지적 할 수 있습니까? 또는 안드로이드 시스템이 어떻게 탐지되는지. 나는 언어가 다르더라도 IOS를 사용하고있다. 그러나 나는 방법 과정이 확실히 유사하다고 생각한다. – flynn

+0

오, 나는 당신이 android 태그 때문에 android에 있다고 의심합니다. 다른 플랫폼에서이를 구현하려면 고유 한 URL 정규식을 구현하거나 Android에서 matcher를 어떻게 수행하는지 안드로이드에서 android.Text.util.Linkify 클래스를 확인하면됩니다. – ikhsan

1

정규 표현식을 사용하면 url을 포함하는 문자열을 찾을 수 있습니다. 다음 코드를 사용하십시오.

public static final String URL_REGEX = "^((https?|ftp)://|(www|ftp)\\.)?[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?$"; 

Pattern pattern = Pattern.compile(URL_REGEX); 
Matcher matcher = pattern.matcher("google.com");//replace with string to compare 
if(matcher.find()) { 
    Log.i("String contains URL"); 
} 
+0

답장을 보내 주셔서 감사합니다. 그러나 귀하의 답변은 특정 웹 사이트에서만 탐지 될 수 있으며 모든 URL이 포함 된 문자열을 감지 할 수 없습니다. 그리고 문자열의 위치와 길이를 찾을 수없고 클릭 할 수 없습니다. – flynn

관련 문제