정규표현식(Regular Expression)은 문자열에서 특정 패턴을 찾거나 대체하는 데 사용되는 강력한 도구입니다.
다양한 프로그래밍 언어와 텍스트 편집기에서 지원되며, 데이터 검증, 검색 및 데이터 분석에 유용하게 사용됩니다.
[abc]
는 ‘a’, ‘b’, 또는 ‘c’ 중 하나와 일치합니다.
[abc]
: ‘a’, ‘b’, ‘c’ 중 하나의 문자와 일치[a-z]
: 소문자 알파벳 중 어떤 문자 하나와 일치[A-Za-z]
: 대소문자를 모두 포함한 알파벳 중 어떤 문자 하나와 일치a*
는 ‘a’가 0번 이상 반복되는 모든 문자열과 일치합니다.
*
: 앞의 문자/패턴이 0회 이상 반복+
: 앞의 문자/패턴이 1회 이상 반복?
: 앞의 문자/패턴이 0회 또는 1회 반복{n}
: 앞의 문자/패턴이 n회 반복{n,}
: 앞의 문자/패턴이 n회 이상 반복{n,m}
: 앞의 문자/패턴이 n회에서 m회까지 반복(a)b\1
는 ‘a’ 다음에 ‘b’가 오고, 그 다음 다시 ‘a’가 오는 문자열과 일치합니다.
(pattern)
: 패턴을 그룹화\1
, \2
…: 첫 번째, 두 번째, … 그룹화된 패턴에 일치하는 문자열을 참조(apple|banana)
는 apple 혹은 banana와 일치합니다.
|
: 또는(OR) 연산자, 여러 패턴 중 하나와 일치(pattern1|pattern2)
: pattern1 또는 pattern2 중 하나와 일치(?(1)a|b)
: 1번 그룹이 존재하면 ‘a’와, 그렇지 않으면 ‘b’와 일치1) [abc]
abcdefg
2) a[abc]
aa ab ac ad
3) [^abc]
defabc
4) [0-5]
1234567890
5) [^bcdfghjklmnpqrstvwxyz]
abcdefghijklmnopqrstuvwxyz
6) ^[bcdfghjklmnpqrstvwxyz]
apple
bus
cat
english
1) K[3-4][A-Z0-9]*
K3234ABCD-123456
K4234ABCD-EFGHIJ
K5234ABCD-EFGHIJ
2) https?
http://naver.com
https://naver.com
3) [1-9][0-9][0-9]\.
10.3sec
120.2sec
250.1sec
5.3sec
1000.3sec
4) [0-9]{3,}\.
10.3sec
120.2sec
250.1sec
5.3sec
1000.3sec
5) \d{3}
123
111
222
334
444
1) (\d)\1\1
123
111
222
334
444
2) ([A-Z_]+),\1
or (\w+),\1
USER_ID,USER_NAME,USER_PWD,USER_PWD,USER_DEPT
3) ([A-Z]+) ([A-Z]+)
→ \2 \1
Chae Shinwook
Wang Hyunsung
Park Heeje
1) apple|orange
apple
pear
strawberry
orange
2) .*\.(jpg|png)$
image.jpg
everySmile.jpeg
myFace.png
oops.xml
3) (Error Code: [0-9]{3}|No Error)
Error Code: 404
No Error
Error Code: XYZ
Error Code: 100
\d
: 숫자를 나타내며, 0부터 9까지의 숫자 중 하나와 일치합니다.\D
: 숫자가 아닌 모든 문자와 일치합니다.\w
: 단어 문자에 해당하는 알파벳, 숫자, 밑줄(_)을 포함합니다.\W
: 단어 문자가 아닌 모든 것과 일치합니다.\s
: 모든 공백 문자(스페이스, 탭, 줄바꿈 등)와 일치합니다.\S
: 공백 문자가 아닌 모든 것과 일치합니다..
: 줄바꿈을 제외한 모든 문자와 일치합니다.^
: 문자열의 시작을 나타냅니다. 예: ^abc
는 “abc”로 시작하는 문자열과 일치합니다.$
: 문자열의 끝을 나타냅니다. 예: abc$
는 “abc”로 끝나는 문자열과 일치합니다.[]
: 문자 집합을 정의합니다. 예: [abc]
는 ‘a’, ‘b’, ‘c’ 중 하나와 일치합니다.[^]
: 대괄호 내의 문자들을 제외한 모든 문자와 일치합니다. 예: [^abc]
는 ‘a’, ‘b’, ‘c’를 제외한 모든 문자와 일치합니다.()
: 캡처 그룹을 만듭니다. 정규 표현식 내부의 특정 부분을 그룹화하고, 이 그룹에 해당하는 부분의 매칭 결과를 추출할 수 있습니다. 예: (abc)
는 “abc”라는 문자열을 하나의 그룹으로 취급합니다.{}
: 문자 또는 패턴의 정확한 반복 횟수를 지정합니다. 예를 들어, a{3}
는 “aaa”와 일치하고, a{2,4}는 “aa”, “aaa”, “aaaa”와 일치합니다.