정규식 Negative Lookahead 예제

정규식을 사용해서 특정 조건을 만족하는 문자열을 찾되, 그중에서 제외를 하고싶은 경우(negative) 어떻게 하면 되는지 예제를 통해서 알아보자.

String.valueOf()
MyCustomClass.valueOf()
Long.valueOf()
Boolean.valueOf()
String.valueOf()
String.valueOf()
String.valueOf()

위와 같은 문자열이 주어졌을때 .valueOf() 함수를 사용하는 곳을 찾고싶은데 String.valueOf()에 대한 검색 결과가 너무 많아서 이 케이스를 제외하고 찾고싶은 경우 Negative Lookahead를 나타내는 (?!) 를 이용해서 정규식을 작성하면 된다.

  • 예1) ^((?!String\.valueOf).)*\.valueOf
  • 예2) ^((?!String|Boolean\.valueOf).)*\.valueOf
    • String.valueOf() 외에도 Boolean.valueOf() 까지 제외시키고 싶은 경우에 사용

정규식 작성시에는 다음 사이트에서 작업 하면 https://regex101.com/ 바로바로 조건과 결과를 확인 할 수 있기때문에 매우 편리하다.