검색 기준 패턴

0. 요약

기호
의미

|

OR

[]

괄호안의 문자들 중 하나. or 처리 묶음

[^문자]

괄호안의 문자를 제외한 것

^문자열

특정 문자열로 시작(시작점)

문자열$

특정 문자열로 끝남(종착점)


1. | 패턴

| 패턴은 OR조건으로 연결시킨다.

1-1. | 패턴 사용예시

정규 표현식은 /hi|me/이다. hi또는 me 단어를 찾는 정규식이다.

|

2. [] 패턴

[] 패턴은 괄호안의 문자들 중 하나라는 뜻으로 or를 처리하기 위해 사용하는 묶음이라고 생각하면 된다. 괄호안에 문자들을 넣어 사용한다.

주의할 점은 괄호안의 문자는 하나의 단어가 아니라 개별적인 문자들로 이루어져 있다는 것이다. 예를 들어 /[abc]/abc 단어를 포함하는 것이 아니라 a 또는 b 또는 c를 포함하는 것을 찾는 패턴이다.

  • /abc/: "abc"를 포함하는

  • /[abc]/: "a" 또는 "b" 또는 "c"를 포함하는

2-1. [] 패턴을 사용하지 않은 예시

정규 표현식이 /name/g이다.

  • /name/: name단어를 찾는다.

  • g: 문자열 내 모든 패턴을 검색한다. 결과가 하나 이상일 수 있다.

결과는 아래와 같다.

[] 패턴 사용하지 않음

2-2. [] 패턴 사용예시

이번엔 정규 표현식인 /[name]/g이다.

  • /[name]/: n, a, m, e 문자를 찾는다.

  • g: 문자열 내 모든 패턴을 검색한다. 결과가 하나 이상일 수 있다.

즉, 문자열 내 모든 n, a, m, e 문자를 찾는 정규 표현식이다. 결과는 아래와 같다.

[] 패턴 사용함

3. [^문자] 패턴

[^문자] 패턴은 [] 패턴과 반대의 개념으로 이해하면 된다. 즉, 괄호안의 문자를 제외한 것을 찾는 패턴이다.

3-1. [^문자] 패턴 사용예시

정규 표현식은 /[^name]/g이다.

  • /[^name]/: n, a, m, e 를 제외한 문자를 찾는다.

  • g: 문자열 내 모든 패턴을 검색한다. 결과가 하나 이상일 수 있다.

바로 위에서 살펴본 3-2. [] 패턴 사용 예시와 반대의 결과가 나타난다.

[^문자] 패턴 사용 예시

4. ^문자열 패턴

^ 기호가 괄호 밖에서 사용되면 문장의 시작을 뜻한다. 즉 ^문자열 패턴은 찾는 패턴이 문장의 처음에 있는 경우를 찾는다. 문자열이 문장의 시작점에 있어야 한다.

4-1. ^문자열 패턴 사용예시 1

정규 표현식은 /^H/이다. H로 시작하는 문장이 있는 경우를 찾는다.

^문자열 패턴 사용예시 1

4-2. ^문자열 패턴 사용예시 2

정규 표현식은 /^W/이다. W로 시작하는 문장이 있는 경우를 찾는다.

일치하는 패턴이 없으므로 아무것도 찾지 못한다.

^문자열 패턴 사용예시 2

4-3. ^문자열 패턴 사용예시 3

정규 표현식은 /^[HW]/gm이다.

  • /^[HW]/: H 또는 W로 시작하는 문장이 있는 경우를 찾는다.

  • g: 문자열 내 모든 패턴을 검색한다. 결과가 하나 이상일 수 있다.

  • m: 줄 바꿈을 허용한다.

이번에는 []패턴과 함께 사용하였다. ^가 괄호 밖에서 사용됨으로 이는 문장의 시작의 경우를 찾는 패턴이다. 만약 괄호 안에서 사용되었으면 다른 의미를 가지게 된다.

또한 m 플래그를 사용함으로써 줄 바꿈을 허용하여 다른 행에서도 H또는 W로 시작하는 문장이 있는 경우를 찾는다.

^문자열 패턴 사용예시 3

5. 문자열$ 패턴

^문자열 패턴이 문장의 시작점을 뜻한다면 문자열$ 패턴은 문장의 종착점을 뜻한다. 즉, 찾는 패턴이 문장의 끝에 있는 경우를 찾는다.

5-1. 문자열$ 패턴 사용예시

정규 표현식은 /name\?$/이다. name?으로 끝나는 문장이 있는 경우를 찾는다.

문자열$ 패턴 사용예시

6. Conclusion

검색 기준 패턴에 대해 정리하였다. \b, \B 패턴은 다른 패턴보다 헷갈리는 면이 있는 듯하여 이해하기가 어려웠다. 또한 아직 한 번도 사용해보지 않은 패턴이었기 때문에 생소한 느낌이 들었다. 지금은 감만 잡을 뿐 아직 적절히 사용할 수 있는 힘은 부족하다. 실전에서 많이 사용하고 싶다. -> 해당 정규식은 정규식 특정 문자 숫자 매칭 패턴으로 이동 다른 패턴은 코딩 테스트세어 자주 봤던 패턴이라 정리하는 데 큰 어려움이 없었다. 오히려 의미를 모르고 사용했기에 정리를 하면서 가려웠던 부분을 시원하게 긁은 느낌이어서 좋았다. 점점 패턴을 많이 정리하고 사용하게 될 텐데 헷갈리지 않도록 조심하도록 하자.


참고

[JS] 📚 정규표현식(RegExp) - 이해하기 쉽게 정리 + 응용 예제 정규표현식(Regular Expression, regex)


📅 2023-01-24

Last updated