두 문자열 사이에서 값을 ""찾고 "가져 오겠습니까?"두 문자열 사이의 값을 찾으려면 어떻게합니까?
예 : 그것은 내가 반환 할 값은 "3"이다 </a>
발견하면 그 시작 어디 <a>
의 위치를 찾을 수있는 파일을 읽고 있어요 <a>3</a>
, 다음 읽고 중지됩니다. JRE 6
두 문자열 사이에서 값을 ""찾고 "가져 오겠습니까?"두 문자열 사이의 값을 찾으려면 어떻게합니까?
예 : 그것은 내가 반환 할 값은 "3"이다 </a>
발견하면 그 시작 어디 <a>
의 위치를 찾을 수있는 파일을 읽고 있어요 <a>3</a>
, 다음 읽고 중지됩니다. JRE 6
를 사용
는당신의 두 가지 옵션은 다음과 같습니다
1) 선호하지만, 잠재적으로 복잡한 :는 XML/HTML 파서를 사용하여 첫 번째 "A"요소 내의 텍스트를 받고. 예 :
Jsoup.parse("<a>3</a>").select("a").first().text(); // => "3"
2) 쉽게하지만 매우 신뢰할 수 없습니다 : 다음 <a>
와 </a>
문자열 사이의 문자를 추출하는 정규 표현식을 사용하여 Jsoup (감사 @의 alpha123)를 사용. 예컨대 : 당신은 정규식을 사용할 수 있습니다
String s = "<a>3</a>";
Pattern p = Pattern.compile("<a>(.*?)</a>")
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(1)); // => "3"
}
는 : 귀하의 의견은 HTML의 경우
try {
Pattern regex = Pattern.compile("<a>(.*)</a>");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
for (int i = 1; i <= regexMatcher.groupCount(); i++) {
// matched text: regexMatcher.group(i)
// match start: regexMatcher.start(i)
// match end: regexMatcher.end(i)
}
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
그러나, 당신은 정말 HTML 파서를 사용하는 것이 좋습니다.
... 왜 이것을 try 블록에 배치하고 있습니까? –
코드는 [RegexBuddy] (http://www.regexbuddy.com/)에 의해 생성되었지만 구문에 문제가 없다면 (이 경우처럼) 필요하지 않습니다. –
FSVO "work"가 정규 표현식으로 작동합니다. 그러나 HTML/XML 구문 분석 (관련이 있지만 다른)은 적절한 도구 (실제로 강력한 선택기 언어를 지원하는 도구)를 사용하여 실제로 수행해야합니다. –
정확히 일치하는 [태그를 검색 한 다음 태그 사이에 텍스트를 변수로 저장] (http://stackoverflow.com/questions/7093716/searching-for-a-tag-then-saving-text-between-tag- 변수로) –