Toggle theme
문제를 잘 정의하는 것은 문제를 절반 해결한 것이다. - 2023.12
사용자 도구
Toggle theme
로그인
사이트 도구
검색
도구
문서 보기
이전 판
PDF로 내보내기
Fold/unfold all
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
현재 위치:
start
»
wiki
»
java
»
string
»
replaceall
wiki:java:string:replaceall
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
===== replaceAll, replace ===== <WRAP left notice 80%> * description : 정규표현식을 사용한 replaceall 활용 연구 * author : 주레피 * email : dhan@repia.com * lastupdate : 2020-04-14 </WRAP> <WRAP clear/> ===== Case study ===== 1. 이미지 소스의 base64문자열 제거 (<img src="data-image/png;base64, ......."/> -> <img src=""/>) <code java> String testStr="<img src=\"data:image/png;base64,iVBORw0KGgo ... 5XTk8evT\">"; System.out.println(testStr.replaceAll("src=\"data:image[^\"]*\"", "src=\"\"")); </code> \\ 2. http://www.repia.com -> <a href="http://www.repia.com" target="blank">www.repia.com</a>(링크추가) \\ <code java> String testStr="http://www.repia.com "; System.out.println(testStr.replaceAll("(http(s)?://([^ ]*))", "<a href=\"$1\" target=\"blank\">$3</a>")); </code> > 괄호 순서대로 \\ (http(s)?:%%//%%([^ ]*)) => $1 \\ (s) => $2 \\ ([^ ]*) => $3 <code java> // Source public static void main(String[] args) { String[] linkHostList = { "http://www.sit.re.kr/kr/board/result/boardView.do?bbsIdx=" , "https://scienceon.kisti.re.kr/srch/selectPORSrchTrend.do?cn=" , "https://www.kosen21.org/info/kosenReport/reportView.do?articleSeq=" }; for(String linkHost: linkHostList) { System.out.printf("%s -> %s\n", linkHost, linkHost.replaceAll("(http(s)?://([^/]*)(/.*))", "$3")); } } // Output <= $3 http://www.sit.re.kr/kr/board/result/boardView.do?bbsIdx= -> www.sit.re.kr https://scienceon.kisti.re.kr/srch/selectPORSrchTrend.do?cn= -> scienceon.kisti.re.kr https://www.kosen21.org/info/kosenReport/reportView.do?articleSeq= -> www.kosen21.org // Output <= $1 http://www.sit.re.kr/kr/board/result/boardView.do?bbsIdx= -> http://www.sit.re.kr/kr/board/result/boardView.do?bbsIdx= https://scienceon.kisti.re.kr/srch/selectPORSrchTrend.do?cn= -> https://scienceon.kisti.re.kr/srch/selectPORSrchTrend.do?cn= https://www.kosen21.org/info/kosenReport/reportView.do?articleSeq= -> https://www.kosen21.org/info/kosenReport/reportView.do?articleSeq= // Output <= $2 http://www.sit.re.kr/kr/board/result/boardView.do?bbsIdx= -> https://scienceon.kisti.re.kr/srch/selectPORSrchTrend.do?cn= -> s https://www.kosen21.org/info/kosenReport/reportView.do?articleSeq= -> s // Output <= $4 http://www.sit.re.kr/kr/board/result/boardView.do?bbsIdx= -> /kr/board/result/boardView.do?bbsIdx= https://scienceon.kisti.re.kr/srch/selectPORSrchTrend.do?cn= -> /srch/selectPORSrchTrend.do?cn= https://www.kosen21.org/info/kosenReport/reportView.do?articleSeq= -> /info/kosenReport/reportView.do?articleSeq= </code> \\ 3. 한줄로 간단하게 ltrim, rtrim <code java> String testStr=str.replaceAll("^\\s+",, ""); //ltrim String testStr=str.replaceAll("\\s+$",, ""); //rtrim </code> > '^' mean 처음부터 매칭 \\ '$' mean 라인마지막 매칭 \\ %%\\%%s+ mean white space \\ 4. 특수 기호 사용하기 \\ 4.1 []로 싸주면 문자자체를 인식하는 것 <code java> * => [*] + => [+] $ => [$] | => [|] ? => [?] </code> 4.2 \\를 붙여줘야 하는 것 <code java> ( -> \\( ) -> \\) { -> \\{ } -> \\} ^ -> \\^ [ -> \\[ ] -> \\] </code> 4.3 나머지 기호 !#%&@':;-.<>,~` 는 괜찮은 것 같다. \\ <code java> String c = "?$(){}*+^|[]"; c = c.replaceAll("[?][$]\\(\\)\\{\\}[*][+]\\^[|]\\[\\]", ""); </code> ===== Ref ===== * [[https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html|Pattern, Regular Experssion]] * [[https://regexr.com/|Regular 온라인 Test]] * [[http://coolx.net/cboard/develop/446|replaceAll에서 정규표현식 특수문자 취급 자바]] ===== Tip ===== ===== Troubleshooting ===== {{tag>주레피 replaceAll replace}}
/volume1/web/dokuwiki/data/pages/wiki/java/string/replaceall.txt
· 마지막으로 수정됨: 2023/01/13 18:44 (바깥 편집)
문서 도구
문서 보기
이전 판
역링크
PDF로 내보내기
Fold/unfold all
맨 위로