728x90
반응형

정규 표현식을 하나씩 찾아보면서 사용해보다가 문제를 풀어보면서 정리하고 싶어서
정규 표현식 문제 풀이 사이트를 찾아보았다.

https://regex101.com

 

regex101: build, test, and debug regex

Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET.

regex101.com

각 언어별 정규 표현식을 직접 사용해볼 수도 있고 문제를 풀어볼 수 있는 사이트다.
이 사이트에서 문제를 풀면서 사용했던 정규 표현식에 대해서 정리해야겠다.


정규 표현식 요약 정리

(?i)[문자] 뒤에 나오는 문자를 대소문자 구분 없이 나타내는 표현식
/[표현식]/i Flag/Modifier, 표현식의 결과를 대소문자 구분 없이 나타내는 표현식
\b Word Boundary, 문자 경계를 나타내는 표현식

 

TASK 1 : WORD BOUNDARIES

문제에 대해서 간단하게 요약하자면 대소문자 구분없이 word 라는 단어가 포함된 문자열을 찾는 문제였다.
일단 이렇게 word 라는 문자가 들어간 문자열을 찾아봤다.

/word/

대소문자를 구문없이 찾아야하는데 당연히 소문자만 찾아질거다.
그럼 대소문자를 구분하는 표현식으로 2가지 방법을 찾아서 사용해봤다.

/(?i)[문자]/ 또는 /[문자]/i

여기서 i 는 ignore case 또는 case insensitive의 의미라고 보면 된다.
그래서 이 표현식을 사용해서 대소문자 구분 없이 찾아보았다.

/(?i)word/

그랬더니 대소문자 구분없이 word 라는 문자가 들어간 문자열을 찾을 수 있지만
aword 와 같은 문자열도 word 라는 문자가 포함된 문자열로 나오게 된다.
word 라는 단어만 포함된 문자열을 찾기위해서는 문자의 경계를 정해줄 필요가 있었다.
그래서 문자의 경계를 표현해주는 표현식을 찾아서 사용해봤다.

\b[문자]\b

\b 라는 표현식으로 문자의 경계를 나타내주는 표현식이라고 생각하면 된다.
따라서 문자 경계를 나타내는 표현식을 사용해서 word 라는 문자가 포함된 문자열을 찾을 수 있었다.

/\b(?i)word\b/ 또는 /\bword\b/i

추가로 정규 표현식 \b 에 대해서 자세하게 설명해놓은 블로그가 있어서 가져왔다.

https://ohgyun.com/392

 

정규식 단어 경계 메타 문자 \b 의 정확한 이해

발생일: 2013.02.18 문제: 우리 부부는 주말마다 커피숍에 가서 책을 읽는데, 어제는 날이 좋아서 남양주에 있는 고당이라는 카페로 나들이를 갔다. 작년에 한 번 다녀왔던 곳인데, 한옥 카페이고

ohgyun.com

 

728x90
반응형
복사했습니다!