간단한 정규식 패턴이라고 생각합니다.첫 번째와 세 번째 단어의 모든 일치 패턴 (모든 것을 포함 함)
어쩌구 http://www.google.com :
은 내가 이렇게 보이는 텍스트 파일이 있습니다. 다른 여기 뭔가, ㅋㅋ bah. http://x.oddree.com/image1.jpg. 좀 더 많은 텍스트를 ... blah blah. 나는 거기에서 잡기 위해 노력하고 무엇 http://x.oddree.com/image2.jpg
은 http로 시작하여 JPG로 끝나는 모든 텍스트입니다. 전체 URL이 아닙니다. .jpg로 끝나는 것만. 즉
, 내 출력이 원하는 :
http://x.oddree.com/image1.jpghttp://x.oddree.com/image2.jpg
내 정규식은 다음과 같습니다 ". \의 B (HTTP) * (JPG) \ B를"과 작동하는 것 같습니다. 그러나 패턴 매치와 함께 사용하면 http의 첫 번째 발생에서 jpg의 마지막 발생까지 모든 것을 얻게됩니다. 나는 \ b를 \ b로 바꾸는 것을 두 번 이스케이프해야한다는 것을 알고 있지만 여전히 예상대로 작동하지 않습니다.
나는 이것에 대해 몇 시간 동안 벽에 머리를 두드렸다.
if(file.exists())
{
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('n');
}
}
catch (IOException e) {
//TODO Write some error handling.
}
Pattern pattern = Pattern.compile(
"\\b(http).*(jpg)\\b"
);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
result.add(matcher.group());
}
my_text.setText(result.toString());
}
시도 : :-) 여기에
것은 코드입니다! 그래서 그것은 이중 탈출구를 가진 \ S이고 +? 'through'구문을 사용합니다. 표준 RegEx와는 너무 멀리 떨어져 있습니다. 나는 패턴 매치에 대해 더 많은 문서를 읽어야 할 것이다. :-) 그 빠른 대답에 감사드립니다! – RayHaque