정규 표현식(Regular Expression, 줄여서 regex 또는 regexp)은 문자열에서 문자 조합을 일치시키는 데 사용되는 패턴입니다. 정규 표현식은 텍스트 검색, 편집 또는 처리에 사용할 수 있습니다. 많은 프로그래밍 언어와 도구에서 널리 사용됩니다.
README.md
중국어 문자 일치: [\u4E00-\u9FA5]
더블 바이트 문자(한자를 포함하여) 일치: [^\x00-\xFF]
중국 신분증 번호, 마지막 숫자 또는 X: d{17}[d|X|x]
중국 휴대폰 번호: 1[3-9]d{9}
중국 유선 전화 번호: d{3}-d{8}|d{4}-d{7}
중국 우편 번호: [1-9]d{5}(?!d)
이메일 검증: w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
URL 일치: [a-zA-z]+://[^s]*
IPv4 주소 일치: d+.d+.d+.d+
기본 구문
리터럴 문자: 자체와 일치합니다. 예를 들어, 정규 표현식 abc는 문자열 "abc"와 일치합니다.
메타 문자: 특별한 의미를 가진 문자. 예를 들어:
- .: 줄 바꿈을 제외한 모든 단일 문자와 일치합니다.
- ^: 문자열의 시작과 일치합니다.
- $: 문자열의 끝과 일치합니다.
- *: 앞의 하위 표현식과 0회 이상 일치합니다.
- +: 앞의 하위 표현식과 1회 이상 일치합니다.
- ?: 앞의 하위 표현식과 0회 또는 1회 일치합니다.
- |: OR 연산을 나타냅니다. 예를 들어, a|b는 "a" 또는 "b"와 일치합니다.
- (): 그룹화 및 캡처에 사용됩니다.
- []: 괄호 안의 임의의 문자와 일치합니다. 예를 들어, abc는 "a", "b" 또는 "c"와 일치합니다.
- {}: 앞의 하위 표현식과 지정된 횟수와 일치합니다. 예를 들어, a{2}는 "aa"와 일치합니다.
- 이스케이프 문자: 백슬래시 를 사용하여 메타 문자를 이스케이프하여 특별한 의미를 잃게 합니다. 예를 들어, .는 마침표와 일치합니다.
- g: 전역 일치.
- i: 대소문자 구분 없음.
- m: 여러 줄 일치.
- s: 단일 줄 일치.
- u: 유니코드 일치.
몇 가지 사용법
- 숫자와 일치: d
- 비숫자와 일치: D
- 공백 문자와 일치: s
- 비공백 문자와 일치: S
- 단어 문자와 일치: w
- 비단어 문자와 일치: W
- 줄 바꿈과 일치:
- 탭과 일치:
- 캐리지 리턴과 일치:
- 임의의 문자와 일치: sS
- 임의의 문자와 일치: wW
- 임의의 문자와 일치: dD
- 임의의 문자와 일치: ^
- 중국어 문자와 일치: 一-龥
- -: 범위를 나타냅니다. 예를 들어, 0-9는 0에서 9까지의 숫자와 일치합니다.
- ?: 비탐욕적 일치. 예를 들어, a+?는 "a" 또는 "aa"와 일치합니다.
- (?=exp): 긍정적 전방 탐색, exp 앞의 위치와 일치합니다.
- (?!exp): 부정적 전방 탐색, exp 뒤에 오지 않는 위치와 일치합니다.
- (?<=exp): 긍정적 후방 탐색, exp 뒤의 위치와 일치합니다.
- (?<!exp): 부정적 후방 탐색, exp 앞에 오지 않는 위치와 일치합니다.
- : 단어 경계와 일치합니다.
- B: 비단어 경계와 일치합니다.
- x|y: x 또는 y와 일치합니다.