다른 값으로 여러 문자를 대체하려고합니다. 예를 들어, 내가 가지고있는 경우 : #love hate
그 다음 돌아오고 싶습니다 %23love%20hate
URL 문자열을 정규 표현식으로 인코딩
그룹과 관련이 있습니까? 나는 그룹을 사용하는 것을 이해하려고 노력했다. 그러나 나는 그것을 정말로 이해하지 않았다.
다른 값으로 여러 문자를 대체하려고합니다. 예를 들어, 내가 가지고있는 경우 : #love hate
그 다음 돌아오고 싶습니다 %23love%20hate
URL 문자열을 정규 표현식으로 인코딩
그룹과 관련이 있습니까? 나는 그룹을 사용하는 것을 이해하려고 노력했다. 그러나 나는 그것을 정말로 이해하지 않았다.
이 작업을 수행하려고 할 수 있습니다
String encodedstring = URLEncoder.encode("#love hate","UTF-8");
그것은 당신에게 당신이 원하는 결과를 줄 것이다. 를 REVERS하려면이 작업을 수행해야합니다
String loveHate = URLDecoder.decode(encodedstring);
단일 문자를 바꾸려면 RegEx가 필요하지 않습니다. RegEx는 그러한 자산에 대한 과잉 자금입니다. 바꾸려는 각 문자에 대해 루프에서 String 클래스의 일반 바꾸기 메서드를 사용하면됩니다.
String output = input.replace("#", "%23");
output = output.replace(" ", "%20");
대체 할 문자는 몇 개입니까?
답장을 보내 주셔서 감사합니다. 다음과 같은 문자를 여러 개 repalce해야 할 수도 있습니다. % 23i % 20love % 20이어야합니다. 고맙습니다. 고맙습니다. – BeginnerPro
Np. 그러나 수십 개의 그러한 문장을 사용하는 것이 단일 RegEx 컴파일을 사용하는 것보다 훨씬 효율적입니다. – adarshr
아니요, 여러 번 교체해야합니다. 또 다른 옵션은 그룹을 사용하여 여러 문자열 중 하나의 다음 항목을 찾고 문자열이 무엇인지 검사하고지도를 사용하여 적절히 바꿉니다.
내가 무엇을 달성하고자하는 URL 인코딩 대신 순수 교체의 종류라고 생각합니다.
이 스레드에 대한 몇 가지 답변을 참조하십시오. 특히 투표가 7 회 더 재미있을 수도 있습니다.
당신이 훨씬 더 쉽게
예를 들어이 될 것 UTF-8 또는 기존 클래스를 사용하여 일부 인코딩에 URL을 인코딩하려는 경우. 매트 말했듯이
평민 - HttpClient를 프로젝트는
URIUtil.encodeWithinQuery(input,"UTF-8");
,이 문제를 해결하는 가장 좋은 방법은 URLEncoder와 함께입니다. 당신이 정규식을 사용하여 주장하는 경우, 다음 java.util.regex.Matcher.appendReplacement
의 설명서에 나와있는 예제 코드를 참조하십시오
Pattern p = Pattern.compile("cat");
Matcher m = p.matcher("one cat two cats in the yard");
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "dog");
}
m.appendTail(sb);
System.out.println(sb.toString());
를 루프 내에서 일치하는 어떤 문자열보고 그 기반으로 사용자 대체를 할 m.group()
를 사용할 수 있습니다. 이 기술은 $ {variables}을지도 등을 찾는 것으로 대체하는 데 사용할 수 있습니다.
어떻게 그리워 했습니까! :) – adarshr
정확히 내가 필요로했던 것을 고맙습니다. =) 많은 아이들이있어서 번영하고 살 수 있습니까? – BeginnerPro