본문 바로가기
Programming/Javascript

Regex 기본

by peter paak 2019. 11. 24.
728x90

VSCode에서 주석 백그라운드 색 지정을 하면서 regex를 사용해야 했습니다. 평소에 정리해야지 했었는데 이번을 기회로 정리하게 되었습니다. Regular Expressions (Regex) Tutorial: How to Match Any Pattern of Text를 참조하였고 자세한 내용을 동영상을 참고하셔도 좋을 것 같습니다.

주요 regex

.       - Any Character Except New Line

\d      - Digit (0-9)
\D      - Not a Digit (0-9)
\w      - Word Character (a-z, A-Z, 0-9, _)
\W      - Not a Word Character
\s      - Whitespace (space, tab, newline)
\S      - Not Whitespace (space, tab, newline)

\b      - Word Boundary
\B      - Not a Word Boundary

^       - Beginning of a String
$       - End of a String

[]      - Matches Characters in brackets
[^ ]    - Matches Characters NOT in brackets
|       - Either Or
( )     - Group

Quantifiers:
*       - 0 or More
+       - 1 or More
?       - 0 or One
{3}     - Exact Number
{3,4}   - Range of Numbers (Minimum, Maximum)
  • 대문자 : not

  • d = digit = 숫자

  • w = word = 문자

  • s = space = 공백, 탭, 새로운 라인

  • b = boundary = 공백을 기준으로 양 옆의 문자

  • ^ = 시작

  • $ = 끝

  • ( ) = 그룹

  • [ ] = 매치

  • [^ ] = not 매치

  • | = or 혹은 그냥 regex 두개 붙히면 됨

    • = 0 +
    • = 1 +
  • ? = 0 1

  • { } = 정확한 숫자

  • {1, 3} = 1과 3사이의 숫자 = [1-3]

예제1

CoreyMSchafer@gmail.com
corey.schafer@university.edu
corey-321-schafer@my-work.net

[a-zA-Z0-9_.+-]+@[a-zA-Z0-9_.+-]+\.(com|net|edu)
  • [ ]+
    • 안의 내용이 하나 또는 그 이상이 매칭될 경우

예제2

https://www.google.com
http://coreyms.com
https://youtube.com
https://www.nasa.gov

http?://(www\.)?\w+\.\w+
  • http?
    • http 뒤 한자리에 문자가 없거나 하나가 있을 경우
    • ex) http | https
  • (www.)?
    • www. 그룹이 있거나 없거나
  • \w+
    • 하나 이거나 그 이상의 문자가 있는 경우
728x90