특정 키워드로 시작되고 그 키워드만 포함시키고 싶을 때 Only contains certain keywords Regex

^((특정s{0,2}키워드)s*)+$

특정 키워드로 시작되고 그 키워드만 포함시키고 싶을 때 사용하는 정규표현식이다.

왜냐면 1) 특정 키워드로만 이루어진 문장 2) 특정 키워드 + 다른 키워드/표현

여기서 1)의 경우는 특정 키워드를 잡는 게 유의미할 수 있지만 2)의 경우에는 다른 키워드가 더 중요한 의미일 수 있기 때문에 특정 키워드로 시작해서 그 키워드만 있는 문장만 잡고 싶은 케이스에 사용하는 정규표현식이다.

해석)

  • ^ : 시작
  • s : 띄어쓰기
  • *, + : 무한반복
  • {0,2} : 0 ~ 2번 반복
  • $ : 문장 끝

자연어 관련해서 챗봇을 개발하다보면, 단순 키워드 매칭보다도 문장의 패턴을 인식해서 정말 그 상황에 맞는 키워드를 골라내야할 때가 있는데 이 때 정규표현식 패턴을 적용하면 좋다.

정규표현식을 테스트하는 사이트는 많은데 나는 주로 https://regex101.com/ 를 사용한다.

위에 정규표현식을 입력하고 TEST STRING에 테스트하고 싶은 문장들을 적으면 된다.

스크린샷 2019-03-14 오후 11.29.51.png

세상이 정말 좋아서 이렇게 정규표현식을 테스트해 볼 수 있고, 아래 전체 화면을 보면 우측에 EXPLANATION에서 사용된 정규표현식에 대한 해석이 자세히 나오고 MATCH 정보도 볼 수 있고 등등 유용한 정보가 한눈에 모아져있다. 심지어 UI도 예쁘다!!! 참 감사하다.

스크린샷 2019-03-14 오후 11.37.39.png

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s