正则表达式速查
正则表达式语法和常用模式参考。
60개 패턴
기본 메타문자
| 模式 | 说明 | 示例 |
|---|---|---|
. | 임의의 한 문자 (줄바꿈 제외) | a.c → abc, a1c, a c |
^ | 문자열/줄의 시작 | ^Hello → Hello로 시작하는 줄 |
$ | 문자열/줄의 끝 | end$ → end로 끝나는 줄 |
\ | 특수 문자 이스케이프 | \. → 리터럴 점(.) |
| | OR 연산 | cat|dog → cat 또는 dog |
() | 그룹 캡처 | (ab)+ → ab, abab |
(?:) | 비캡처 그룹 | (?:ab)+ → 그룹화만, 캡처 안함 |
수량자 (Quantifiers)
| 模式 | 说明 | 示例 |
|---|---|---|
* | 0회 이상 반복 (탐욕적) | ab*c → ac, abc, abbc |
+ | 1회 이상 반복 (탐욕적) | ab+c → abc, abbc (ac는 ×) |
? | 0회 또는 1회 | colou?r → color, colour |
{n} | 정확히 n회 반복 | a{3} → aaa |
{n,} | n회 이상 반복 | a{2,} → aa, aaa, aaaa... |
{n,m} | n회 이상 m회 이하 | a{2,4} → aa, aaa, aaaa |
*? | 0회 이상 (게으른/최소 매칭) | <.*?> → 각 태그 개별 매칭 |
+? | 1회 이상 (게으른/최소 매칭) | .+? → 가능한 적게 매칭 |
?? | 0 또는 1회 (게으른) | a?? → 빈 문자열 우선 매칭 |
문자 클래스
| 模式 | 说明 | 示例 |
|---|---|---|
[abc] | a, b, c 중 하나 | [aeiou] → 모음 한 글자 |
[^abc] | a, b, c를 제외한 문자 | [^0-9] → 숫자가 아닌 문자 |
[a-z] | 소문자 범위 | [a-zA-Z] → 영문자 |
[0-9] | 숫자 범위 | [0-9]+ → 하나 이상의 숫자 |
\d | 숫자 [0-9] | \d{3} → 세 자리 숫자 |
\D | 숫자가 아닌 문자 [^0-9] | \D+ → 숫자가 아닌 연속 문자 |
\w | 단어 문자 [a-zA-Z0-9_] | \w+ → 변수명 등 단어 |
\W | 단어 문자가 아닌 것 [^a-zA-Z0-9_] | \W → 특수문자, 공백 |
\s | 공백 문자 (스페이스, 탭, 줄바꿈) | \s+ → 연속 공백 |
\S | 공백이 아닌 문자 | \S+ → 공백 아닌 연속 문자 |
\b | 단어 경계 (위치) | \bword\b → 독립된 단어만 |
\B | 단어 경계가 아닌 곳 (위치) | \Bword → 단어 내부의 word |
전후방 탐색 (Lookaround)
| 模式 | 说明 | 示例 |
|---|---|---|
(?=...) | 전방 탐색 (Positive Lookahead) | \d(?=px) → px 앞의 숫자 |
(?!...) | 부정 전방 탐색 (Negative Lookahead) | \d(?!px) → px 앞이 아닌 숫자 |
(?<=...) | 후방 탐색 (Positive Lookbehind) | (?<=\$)\d+ → $ 뒤의 숫자 |
(?<!...) | 부정 후방 탐색 (Negative Lookbehind) | (?<!\$)\d+ → $ 뒤가 아닌 숫자 |
그룹 & 역참조
| 模式 | 说明 | 示例 |
|---|---|---|
(abc) | 캡처 그룹 | (\d+)-(\d+) → $1, $2로 참조 |
(?:abc) | 비캡처 그룹 (성능 향상) | (?:https?://) → 캡처 안함 |
(?<name>abc) | 이름 있는 캡처 그룹 | (?<year>\d{4}) → $<year> |
\1 | 역참조 (첫 번째 그룹) | (\w+)\s\1 → hello hello |
$1 또는 \1 | 치환 시 그룹 참조 | s/(\w+)/[$1]/g |
플래그 (Flags)
| 模式 | 说明 | 示例 |
|---|---|---|
g | 전역 검색 (모든 매치 찾기) | /pattern/g |
i | 대소문자 무시 | /hello/i → Hello, HELLO 매칭 |
m | 여러 줄 모드 (^, $ 각 줄 적용) | /^start/m → 각 줄의 start |
s | dotAll (.이 줄바꿈도 매칭) | /a.b/s → a\nb도 매칭 |
u | 유니코드 지원 | /\p{Hangul}/u → 한글 매칭 |
y | sticky (lastIndex부터만 검색) | /\d+/y |
자주 쓰는 패턴
| 模式 | 说明 | 示例 |
|---|---|---|
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ | 이메일 주소 검증 | |
^https?:\/\/(www\.)?[\w.-]+\.[a-zA-Z]{2,} | URL (http/https) | |
^01[016789]-?\d{3,4}-?\d{4}$ | 한국 휴대전화번호 | |
^\d{2,3}-?\d{3,4}-?\d{4}$ | 한국 전화번호 (일반) | |
^\d{3}-?\d{2}-?\d{5}$ | 사업자등록번호 | |
^\d{6}-?[1-4]\d{6}$ | 주민등록번호 | |
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ | 날짜 (YYYY-MM-DD) | |
^(0[1-9]|1[0-2]):(0[0-9]|[1-5]\d)$ | 시간 (HH:mm, 24시) | |
^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$ | HEX 색상코드 (#fff, #ffffff) | |
^-?\d+(\.\d+)?$ | 정수 또는 소수 (음수 포함) | |
^\d{1,3}(\.\d{1,3}){3}$ | IPv4 주소 (기본) | |
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d@$!%*?&]{8,}$ | 비밀번호 (영문+숫자, 8자 이상) | |
<[^>]+> | HTML 태그 매칭 | |
<(\w+)[^>]*>.*?<\/\1> | HTML 여닫는 태그 쌍 | |
^\s+|\s+$ | 앞뒤 공백 (trim 용도) | |
\b\w+\b | 단어 추출 (단어 경계 사용) | |
(\d{1,3})(,\d{3})* | 천 단위 콤마 숫자 (1,000,000) |
常见问题
什么是正则表达式?↓
正则表达式(regex)是定义搜索模式的字符序列,用于文本的匹配、查找和操作。