
정규식(Regular Expression)은 문자열의 패턴을 나타내기 위한 형식 언어로, 문자열에서 원하는 패턴을 찾거나 검색하고자 할 때 사용된다.
문자 클래스 (Character Classes):
.: 어떤 한 문자와 매치됨.
[abc]: a, b, c 중 하나의 문자와 매치됨.
[^abc]: a, b, c를 제외한 다른 문자와 매치됨.
특수 문자 (Special Characters):
\: 특수 문자를 이스케이프(escape)하여 문자 그대로 매치됨.
^: 문자열의 시작을 나타냄.
$: 문자열의 끝을 나타냄.
|: 둘 중 하나를 선택하여 매치됨.
반복 (Repetition):
*: 0회 이상 반복.
+: 1회 이상 반복.
?: 0회 또는 1회 반복.
{n}: n회 반복.
{n,}: n회 이상 반복.
{n,m}: n회부터 m회까지 반복.
그룹화 (Grouping):
(): 그룹을 지정하여 매치됨. 그룹화하면 그룹 내의 패턴을 하나의 단위로 취급할 수 있음.
문자열 (Anchors):
\b: 단어 경계를 나타냄.
\B: 단어 경계가 아님.
사전 정의된 문자 클래스 (Predefined Character Classes):
\d: 숫자와 매치됨. [0-9]와 동일.
\D: 숫자가 아닌 것과 매치됨. [^0-9]와 동일.
\w: 문자, 숫자, 밑줄()과 매치됨. [a-zA-Z0-9]와 동일.
\W: 문자, 숫자, 밑줄이 아닌 것과 매치됨. [^a-zA-Z0-9_]와 동일.
\s: 공백 문자와 매치됨.
\S: 공백 문자가 아닌 것과 매치됨.
예를 들어, \d{4}|\d{6}는 4자리 혹은 6자리 숫자 형식과 매치되는 정규식이다.
"\d"는 숫자에 매치되나 "\ \d"는 문자열에서 "\d"에 매치된다. 실제로 숫자 자체를 검사하려면 "\d"로 사용한다.