Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

replace / replaceFirst, Caused by: java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0

Language/Java 2013.08.01 10:36
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

 

이런...내가 잘못 학습을 한건가...

 

replace가 하나만 치환이 되어지는 것이고 replaceAll이 전부 치환 시키는 것으로 알고 있었다..-_-;

그런데..replace를 사용했을 경우 전부 치환이 되어지는 것이다..ㅠ_ㅠ...

그래서 혹시나 해서 봤더니...replaceFirst가 있네....OTL

 

?를 찾아서 내가 원하는 문자열로 치환하고 싶었다.

아래와 같이 오류가 발생했다.

 

Caused by: java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0

 

바로..? 라는 특수문자는 그냥 사용 할 수가 없다.

 

소스는 아래와 같다.

더보기

 

보통 특수문자를 자바에서 표현 할 때 \를 붙여서 사용하지만 replaceFirst는 정규표현식 스트링이다. 쓰임새는 \\를 붙여서 처리 한다.


참고사항 


자바의 특수문자와 그 기능 
\n        u000A           new line
\t         u0009           tab
\r         u000D           return
\f         u000C           form feed
\\         u005C           backsalsh
\'          u0027          single quote
\"         u0022          double quote

\b         u0008          backspace 


replaceAll()에....

1.[]씌워야 할 것들

*  ⇒ [*]
+  ⇒ [+]
$  ⇒ [$]
|  ⇒ [|]


2. \\를 붙여줘야 하는 것들.

( ⇒ \\(
) ⇒ \\)
{ ⇒ \\{
} ⇒ \\}
^ ⇒ \\^
[ ⇒ \\[
] ⇒ \\]


3. 자바의 특수문자는 \을 쓴다.

 " ⇒ \"


4. 나머지 부호들은 괜찮은 듯 하다.
확인된 것.

! # % & @ ` : ; - . < > , ~ '

[출처] 자바 특수문자|작성자 카제

 


 참고 사이트 : http://blog.naver.com/kim22922?Redirect=Log&logNo=80097490823


                   - END -

 

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

  • 종이눈 2014.06.14 20:34 신고 답글 | 수정/삭제 | ADDR

    감사합니다.
    split( "*" ) 가 왜 오류가 발생하나 했더니 split( "[*]" ) 라고 해줘야 되는거였군요

    • Favicon of http://acet.pe.kr BlogIcon String Ace-T 2014.06.16 09:00 신고 수정/삭제

      도움이 되셨다니 다행이에요! ㅎㅎㅎ
      불코딩 하세요~~ㅎㅎㅎ

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

티스토리 툴바