, 당신은 일치 캡처의 URL (당신이 "보호"할 것을) 그냥 당신이 무엇을 일치하는 정규 표현식을 사용할 수 있습니다 제거해야합니다. 그런 다음 Matcher#appendReplacement()
을 사용하여 캡처가 수행되었는지 확인한 다음 적절하게 교체하십시오. (\\bhttps?://)
일치하고 는 http://
또는 https://
및 [:/]
일치하거나 또는 :
/
은 (a 공간으로 대체 함) 그룹 1으로 캡처 여기서
정규식은 (\\bhttps?://\\S*)|[:/]
유사 할 수있다. /
및 :
을 "축소"해야하는 경우 [:/]+
을 사용하십시오.
String fileText = "http://example.com//foo/bar http://example.com//foo/bar 1: 2/";
String pattern = "(\\bhttps?://)|[:/]";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(fileText);
StringBuffer sb = new StringBuffer();
while (m.find()) {
if (m.group(1) != null)
m.appendReplacement(sb, m.group(1));
else
m.appendReplacement(sb, " ");
}
m.appendTail(sb);
System.out.println(sb);
// => http://example.com foo bar http://example.com foo bar 1 2
가 Java demo를 참조하십시오 여기에
은 샘플 코드입니다.
url = url.replaceAll("(https?://[^/:]+)?[/:]", "$1 ")
$1
가 ?
덕분에 선택 사항입니다 그룹 1 (https?://[^/:]+)
에서 일치를 나타냅니다 : 당신은 같은 것을 사용할 수 있습니다처럼 들어
교체 또는 제거 하시겠습니까? –
예제와 같이 공백으로 바꿉니다. – Alisa
'url : http : // example.com // foo/bar'에 대해 코드가 어떻게 반응해야합니까? – Pshemo