2016-10-24 1 views
0

그것의 부분 :어떻게 얻을 자바에서 문자열을 구문 분석하는 일부 나는이 같은 문자열을 구문 분석 할 필요가

"<img src=\"some_link\" height=\"200\" width=\"auto\" /><br><br\>"Lorem ipsum dolor si amet...\" Name<br>address<br>www.google.com<br>01 42 42 42 42" 

내가 img 태그 후 모든 필요를하지만 각각 별도의 원하는 다음가 lorem를 ipsum 부분/이름 부분/웹 링크 부분/전화 번호

저는 코드 예제가 아니라 여기에 몇 가지 방법과 기법을 적용했습니다. 처음에는 img 부분을 삭제하고 태그를 \ n으로 바 꾸었습니다. 그러나 각 정보를 분리하여 작업 할 수있어서 좋겠습니다.

편집 : 아래의 metionned로 Jsoup를 사용했는데 정상적으로 작동합니다! 감사합니다

+1

는 당신이 우리를 보여줄 수 지금까지 시도 것을 : 자바에서 최선의 선택을

jsoup입니까? btw,
에 스플릿을 사용하면 Lorem과 이름 부분을 구별해야합니다. – Aks

+0

String.indexOf() 및 String.substring()을 사용합니다. –

+0

@jonathan 당신은 정규식 매치 및 바꾸기를 통해 쉽게이 작업을 수행 할 수 있습니다. 행동 양식. –

답변

0

필요하지만 HTML, 당신은 HTML 파서 (never ever attempt parsing HTML with regex)를 사용해야한다.

String html = "<img src=\"some_link\" height=\"200\" width=\"auto\" /><br><br\\>\"Lorem ipsum dolor si amet...\" Name<br>address<br>www.google.com<br>01 42 42 42 42"; 
    Document doc = Jsoup.parse(html); 

    for (Element e : doc.select("*")) { 
     for (TextNode tn : e.textNodes()) { 
      System.out.println(tn.text()); 
     } 
    } 
+0

나는 이것을 시도 할 것이다, 나는 너에게 돌아온다. 내가 끝났을 때. –

0

저는 Rishabh Gupta에 동의합니다. 정규식은 가장 쉬운 방법입니다. 그 이상을 상세히 설명하기 전에, HTML을 정규 표현식으로 파싱하는 것은 에러가 발생하기 쉽다는 것을 지적하고 싶다. 그러나 간단한 작업 (적은 수의 결함이 있으면 괜찮은)에 대해서는 노력이 적다. 예 : 위의 패턴 I 그룹을 캡처 사용 "()"및 문자 세트 "[]"의

String s = "<img src=\"some_link\" height=\"200\" width=\"auto\"; 
Pattern p = Pattern.compile("<img src=\"([^\"]+)\" height=\"([^\"]+)\"; 
Matcher m = p.matcher(s); 
if (m.find()) { 
    String link = m.group(1); 
    String height = m.group(2); 
} 

. E. g. '([^ \ "] +)'는"인용 부호가 아닌 하나 이상의 연속 된 문자 "를 의미하며 이것은 m.group (1)이 사용하는 첫 번째 캡처 그룹에 있습니다. 속성의 순서가 고정되어있는 경우, 즉, 이미지 태그가 항상 "src ="다음에 "height ="등이 있음을 미리 알고있는 경우, 임의 순서로 먼저 이미지 태그 안의 모든 것을 찾을 수 있습니다 (regexp :.. "] +">), 그리고 attrbute 쌍을 추출하는 다른 정규 표현식을 사용

+0

HTML과 함께 regex를 사용하지 마십시오. 그것은 끔찍한 생각이야 : http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – kaqqao

0

<br> 태그에 지정된 스트링을 분할 및 스트링 어레이에 저장할 수

String[] strArr=givenString.split("\\<br>"); 

사용 B 분할 기능의 R 태그는 문자열 배열에서

사용 값이 단지 문자열이 아니기 때문에

관련 문제