2009년 04월 13일
자바 정규표현식에서 \ (역슬래시) 표기하기.
자바 정규표현식은 성능은 어쨌든 펄 호환되는 꽤나 쓸만한 정규표현식을 제공한다.
그런데 한가지 주의할점은 자바 스트링과 정규표현식스트링은 서로 다른 부분이 많다는 것이다.
대표적인것이 \ 의 표기법이다.
자바 스트링에서 \를 표기 하기 위해서는 \\ 로 표현한다
A \ B => "A \\ B"
String src = "A \\ B";
하지만 자바정규표현식에서는 좀 다르다. 이것때문에 고생하는 경우가 많기도 한데,
자바 정규표현식에서 \ 를 나타내는 것은 \\\\ 이다. 4개의 \ 를 연이어 써주어야 한다.
A \ B => "A \\\\ B"
Pattern p = Pattern.compile("A \\\\ B");
단순히 여기서 끝나면 좋은데 String에 있는 여러 메소드들이 입력값으로 정규표현스트링을 받아들이는 부분에서 버그가 많이 발생한다.
String src = "A \\ B \\ C".replaceAll("\\\\"," or");
assert "A or B or C".equals(src)
이렇게 String.replaceAll등의 메소드는 정규표현식 스트링을 받아들인다는것을 유의해야 한다.
가끔 정규표현식을 만들다가 이걸 까먹어서 고생하는 경우가 많아서 정리해 보았다.
# by | 2009/04/13 11:00 | 기술 | 트랙백 | 덧글(4)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
자바쪽은 뭔지 모르게 잘 안 되더군요~ 잘 보고 갑니다.