사용자 도구

사이트 도구


wiki:java:string:replaceall

문서의 이전 판입니다!


replaceAll, replace

  • description : 정규표현식을 사용한 replaceall 활용 연구
  • author : 주레피
  • email : dhan@repia.com
  • lastupdate : 2020-04-14

Case study

1. 이미지 소스의 base64문자열 제거 (<img src=“data-image/png;base64, …….”/> → <img src=“”/>)

String testStr="<img src=\"data:image/png;base64,iVBORw0KGgo ... 5XTk8evT\">";
System.out.println(testStr.replaceAll("src=\"data:image[^\"]*\"", "src=\"\""));


2. http://www.repia.com → <a href=“http://www.repia.com” target=“blank”>www.repia.com</a>(링크추가)

String testStr="http://www.repia.com ";
System.out.println(testStr.replaceAll("(http(s)?://([^ ]*))", "<a href=\"$1\" target=\"blank\">$3</a>"));
괄호 순서대로
(http(s)?://([^ ]*)) ⇒ $1
(s) ⇒ $2
([^ ]*) ⇒ $3
// 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
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=


3. 한줄로 간단하게 ltrim, rtrim

String testStr=str.replaceAll("^\\s+",, ""); //ltrim
String testStr=str.replaceAll("\\s+$",, ""); //rtrim
'^' mean 처음부터 매칭
'$' mean 라인마지막 매칭
\\s+ mean white space


Ref

Tip

Troubleshooting

/volume1/web/dokuwiki/data/attic/wiki/java/string/replaceall.1647006895.txt.gz · 마지막으로 수정됨: 2022/03/11 22:54 저자 dhan