2014-05-25 2 views
-1

이상한 일이지만를 반환 :경우, 전체 문자열을

의 당신이 반환 할 당신이 큰 HTML 페이지를했습니다와 페이지는 이메일 주소가 포함 된 경우 (@ 기호를 찾고) 가정 해 봅시다 그 이메일. 내가 어떻게 @에 도착 알고

String email; 

if (myString.contains("@")) { 

     email = myString.substring("@") 
} 

하지만 어떻게 내가 그 등을하기 전에 무엇을 찾을 문자열에 다시 가야합니까 :

지금까지 나는이 같은 뭔가가 필요 알아? 그것은 바로 @이있는 경우

+1

아마도 정규식을 사용하는 것이 더 낫습니다. – elbaulp

+7

@ algui91 HTML을 정규식으로 구문 분석하면 프러시아 말로 엉덩이를 걷어차 야합니다. 나는 그것을 보증한다. –

+5

HTML 페이지에서 데이터를 읽으려는 일반 String 메서드 나 정규 표현식을 사용하지 않겠습니다. 웹 크롤링 및 HTML 구문 분석을위한 특수 도구가 있습니다. 내 머리 꼭대기에서 [jsoup] (http://jsoup.org/)를보십시오 – toniedzwiedz

답변

0

myString 당신이 다음 HTML 페이지에서 수신 email의 캐릭터 인 경우,

당신은 동일한 문자열을 반환 할 수 있습니다. 아래 내용 중

String email; 

if (myString.contains("@")) { 

     email = myString; 
} 

여기에 도전 ... 뭐라고 할 수 있습니까?

+0

죄송합니다. myString은 실제로 전체 HTML 페이지입니다. – user3504452

+0

요청 매개 변수가있는 서버에 html 페이지를 보낼 수없는 이유는 무엇입니까? 귀하의 삶이 이메일을 별도의 요청 매개 변수로 받아들이 기 쉽고 쉽게 검증 할 수 있습니다 ... 거기에 어떤 도전이 있습니까? –

0
String email; 

if (myString.contains("@")) { 
    // Locate the @ 
    int atLocation = myString.indexOf("@"); 
    // Get the string before the @ 
    String start = myString.substring(0, atLocation); 
    // Substring from the last space before the end 
    start = start.substring(start.lastIndexOf(" "), start.length); 
    // Get the string after the @ 
    String end = myString.substring(atLocation, myString.length); 
    // Substring from the first space after the start (of the end, lol) 
    end = end.substring(end.indexOf(" "), end.length); 
    // Stick it all together 
    email = start + "@" + end; 
} 

하루 종일 자바 스크립트를 쓰는 동안 약간의 문제가있을 수 있습니다. :)

+0

죄송합니다, myString 실제로 전체 HTML 페이지입니다 – user3504452

+0

그 경우 내 대답을 업데이 트합니다. XD 이메일 앞뒤에 공백이 있습니까? – JakeSidSmith

+0

예, 있습니다! – user3504452

0

이 방법은 문자열에 포함 된 모든 이메일 주소의 목록을 제공합니다.

static ArrayList<String> getEmailAdresses(String str) { 
    ArrayList<String> result = new ArrayList<>(); 
    Matcher m = Pattern.compile("\\[email protected][^. ]+(\\.[^. ]+)*").matcher(str.replaceAll("\\s", " ")); 
    while(m.find()) { 
     result.add(m.group()); 
    } 
    return result; 
} 
0

정확한 코드가 아닌 접근 방법을 알려드립니다.

@ 기호로 검사하는 것이 다른 경우에도 가능할 수 있으므로 적절하지 않을 수 있습니다.

인터넷을 통해 검색하거나 이메일과 일치하는 정규식 패턴을 직접 만들 수 있습니다. (당신이 원한다면, 당신은뿐만 아니라 이메일 제공 업체에 대한 검사를 추가 할 수 있습니다) (귀하의 경우 이메일)

Get the index of a pattern in a string using regex 및 문자열을 찾아 (http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/) [여기 링크입니다].

관련 문제