모든 공백을 "_"로 바꾸어서 문자열을 변환하고 실제 문자열에 "_"이 있으면 "\ _"로 변환 중입니다. "this is test _string"과 같은 문자열이 있으면 "this_is_test _ \ _ string"이됩니다. 이제 자바 정규식을 사용하여 원래 문자열 "this is test _string"을 얻고 싶습니다. 자바 정규식을 사용하여 달성 할 수 있습니까? 제발 도와주세요.자바 정규식 사용
0
A
답변
7
아니오, "\\_"
이 "_"
또는 "\\ "
인지 여부를 모호하게하는 백 슬래시를 이스케이프 처리하지 않았으므로 원래 문자열을 되돌릴 수 없습니다. 당신이
- 이
"\\_"
- 와
"_"
의 모든 항목을 교체"\\\\"
- 와
"\\"
의 모든 항목을 교체 한 후"_"
당신이 할 수와 " "
의 모든 항목을 교체했던 경우
토큰을 찾아 프로세스를 역으로 수행하십시오. "\\\\"
, "\\_"
, "_"
왼쪽에서 오른쪽으로 한 번에 전달합니다. 자바에서 먼저 변환
이
stringToEncode.replace("\\", "\\\\").replace("_", "\\_").replace(" ", "_")
이며, 이중이
String decode(String stringToDecode) {
int n = stringToDecode.length();
StringBuilder out = new StringBuilder(n);
int decoded = 0;
for (int i = 0; i < n; ++i) {
switch (stringToDecode.charAt(i)) {
case '\\':
out.append(stringToDecode, decoded, i);
decoded = ++i;
break;
case '_':
out.append(stringToDecode, decoded, i).append(' ');
decoded = i+1;
break;
}
}
return decoded != 0
? out.append(stringToDecode, decoded, n).toString()
: stringToDecode;
}
+1
I 문자열 "this is _test"에 대해 시도했으나 인코딩 된 문자열은 "this_is _ \\ _ test"가 제외되었습니다. 그러나 디코딩 된 문자열은 "This is \ test"입니다. 결과는 잘못된 문자열입니다. – Mojoy
+0
@Senthilnathan, 네. 오버랩이 있기 때문에 디코딩은 입력의 간단한 스왑 및 리버스가 아닙니다. 편집 할 것입니다. –
관련 문제
- 1. URL에 텍스트를 캡처하는 자바 스크립트 정규식 사용
- 2. 자바 정규식
- 3. 자바 정규식
- 4. 자바 - 정규식
- 5. 자바 정규식
- 6. 정규식 = 자바
- 7. 자바 정규식. *?
- 8. 사용 정규식
- 9. 정규식 사용
- 10. 자바 스크립트 정규식 오류
- 11. 자바 정규식 "단일 공백 문자"
- 12. 빠른 정규식 내가 정규식 테스트가 자바 스크립트
- 13. MySQL에서 정규식 오류 (PHP에서 동일한 정규식 사용)
- 14. Dreamweaver 정규식 찾기 및 바꾸기 정규식 사용
- 15. 정규식 표현을 PCRE 정규식 엔진을 사용
- 16. 자바 정규식 공백 문제
- 17. 자바 정규식 메모리 변수
- 18. 자바 정규식 패턴 일치
- 19. 따옴표가있는 자바 스크립트 정규식
- 20. 자바 스크립트 정규식 결과
- 21. 정규식 자바 스크립트
- 22. 자바 스크립트 onkeyup 정규식
- 23. 자바 정규식 정규
- 24. 자바 스크립트 정규식 문제
- 25. 자바 정규식 카드를 사용하여
- 26. 자바 스크립트 정규식 결과
- 27. 자바 정규식 바꾸기
- 28. 정규식 (자바)의 도움
- 29. 자바 정규식, 이스케이프 문자로
- 30. 자바 정규식 도움
이다 지금까지 시도 무엇?] (http://www.whathaveyoutried.com) – Baz