^((특정s{0,2}키워드)s*)+$
특정 키워드로 시작되고 그 키워드만 포함시키고 싶을 때 사용하는 정규표현식이다.
왜냐면 1) 특정 키워드로만 이루어진 문장 2) 특정 키워드 + 다른 키워드/표현
여기서 1)의 경우는 특정 키워드를 잡는 게 유의미할 수 있지만 2)의 경우에는 다른 키워드가 더 중요한 의미일 수 있기 때문에 특정 키워드로 시작해서 그 키워드만 있는 문장만 잡고 싶은 케이스에 사용하는 정규표현식이다.
해석)
- ^ : 시작
- s : 띄어쓰기
- *, + : 무한반복
- {0,2} : 0 ~ 2번 반복
- $ : 문장 끝
자연어 관련해서 챗봇을 개발하다보면, 단순 키워드 매칭보다도 문장의 패턴을 인식해서 정말 그 상황에 맞는 키워드를 골라내야할 때가 있는데 이 때 정규표현식 패턴을 적용하면 좋다.
정규표현식을 테스트하는 사이트는 많은데 나는 주로 https://regex101.com/ 를 사용한다.
위에 정규표현식을 입력하고 TEST STRING에 테스트하고 싶은 문장들을 적으면 된다.
세상이 정말 좋아서 이렇게 정규표현식을 테스트해 볼 수 있고, 아래 전체 화면을 보면 우측에 EXPLANATION에서 사용된 정규표현식에 대한 해석이 자세히 나오고 MATCH 정보도 볼 수 있고 등등 유용한 정보가 한눈에 모아져있다. 심지어 UI도 예쁘다!!! 참 감사하다.