반응형
출처 : http://mean79.tistory.com/60 <- 여기 가서 보면 설명 잘 되어 있다.
전에 String.replaceAll() 쓰는데, 계속 에러나길레 둘려쳐서 구현한 적이 있는데, 이것 때문이었구만.
자바는 String 의 replace 함수의 역사( ? ) 때문에, String.replaceAll( ) 은 String.replace( ) 과 달리 인자값으로 "정규식" 을 받는다.
즉, String.replaceAll( 변경전문자, 변경후문자 ) 으로 사용할 때에, "변경전문자" 가 단순히 문자열이 아니라, 정규식이라는 것.
물론 나같은 사람은 그딴거 없고 그냥 문자열 치환하는데만 썼는데.... 그러다보니 가끔식 뻑 나더란 것.
알고보니까 저 "정규식" 처리때문에, 정규식에서 쓰이는 특수문자들은 치환 문자열로 넣으면 에러가 나는 것이렸다....
예를 들면
String.replaceAll( "가나", "거너" )
는 문제없는데,
String.replaceAll( "가*나", "거-너" )
는 뻑난다는 거다.
아래의 내용은 http://mean79.tistory.com/60 에서 퍼옴. 문자열에 따라 대응해 주면 되겠다.
예를 들어 String.replaceAll( "가*나", "거-너" ) 라면,
String.replaceAll( "가*나", "거-너" ) -> String.replaceAll( "가[*]나", "거-너" )
뭐 이런식으로 써주면 됨. ( 아래부터는 퍼온것. )
-------------------------------------
1. []으로 싸주면 문자자체로 인식하는 것들.
* ⇒ [*]
+ ⇒ [+]
$ ⇒ [$]
| ⇒ [|]
! # % & @ ` : ; - . < > , ~ '
2. \\를 붙여줘야 하는 것들.
( ⇒ \\(
) ⇒ \\)
{ ⇒ \\{
} ⇒ \\}
^ ⇒ \\^
[ ⇒ \\[
] ⇒ \\]
3. 자바의 특수문자는 \을 쓴다.
" ⇒ \"
반응형
'프로그램' 카테고리의 다른 글
linux C 에서 transaction (0) | 2014.08.29 |
---|---|
linux 에서 curl 컴파일 안 될 때. (0) | 2014.08.25 |
라즈베리파이 서버 프로젝트 (2) | 2014.08.03 |
요즘은 Append가 파일 없을 때 생성도 해 주나 보다. (0) | 2014.07.25 |
서버에 데이터를 저장할 때, 저장 가능한 개인정보는 어디까지인가 (2) | 2014.07.05 |