달력

92025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
String.replace()나 정규표현식을 사용할 때 발생한다.
패턴 스트링에 정규표현식에 사용되는 메타데이타가 포함되어 있을 경우이고
해당 캐랙터는 *, ?, +, [, {, (, }, ^, $에 해당한다.

다음과 같이 escape해서 처리한다.

 patternString = patternString.replaceAll("\\*", "\\\\*");
 patternString = patternString.replaceAll("\\?", "\\\\?");
 patternString = patternString.replaceAll("\\+", "\\\\+");
 patternString = patternString.replaceAll("\\[", "\\\\[");
 patternString = patternString.replaceAll("\\{", "\\\\{");
 patternString = patternString.replaceAll("\\(", "\\\\(");
 patternString = patternString.replaceAll("\\)", "\\\\)");
 patternString = patternString.replaceAll("\\^", "\\\\^");
 patternString = patternString.replaceAll("\\$", "\\\\\\$");

$만 역슬래쉬 갯수가 틀린것에 유의.

Posted by 인천총각
|