정규식을 배울 가치가 있는 이유

잘 만들어진 정규식은 수동 문자열 구문 분석 코드 50줄을 대체할 수 있습니다. 마이크로초 단위로 실행됩니다. 거의 모든 프로그래밍 언어에서 작동합니다. 구문을 이해하고 나면 조건부 논리를 구현하는 데 몇 시간이 걸리는 패턴을 작성할 수 있습니다.

장벽은 개념이 아니라 표기법입니다. Regex는 언뜻 보면 횡설수설처럼 보이는 조밀하고 기호가 많은 구문을 사용합니다. 읽는 법을 배우면 이전에는 볼 수 없었던 코드, 데이터 및 텍스트의 패턴을 볼 수 있습니다.

필수 패턴 빠른 참조

무늬성냥
\디0~9의 임의의 숫자\d{4} → 2025
\w문자, 숫자 또는 밑줄\w+→ "hello_world"
\에스모든 공백\s+→ 하나 이상의 공백
^ / $문자열 시작/끝^\d{5}$→ 정확히 5자리 우편번호
[알파벳]a, b, c 중 하나[아이오우]→ 모든 모음
[^abc]a, b, c를 제외한 모든 것[^\d]→ 숫자가 아닌
?이전 항목 중 0 또는 1개색상→ 색상 또는 색상
+1개 이상\d+→ 하나 이상의 숫자
*0 이상\디*→ 0개 이상의 숫자
{n,m}n회에서 m회 사이\d{3,5}→ 3~5자리

북마크할 가치가 있는 패턴

💡 전문가 팁:사용g모든 일치 항목(첫 번째 항목뿐만 아니라)을 찾는 플래그대소문자를 구분하지 않는 일치의 경우만들다^그리고$문자열 경계 대신 줄 경계를 일치시킵니다. 대부분의 실제 정규식 패턴에는 최소한g또는.
"파국적 역추적"이란 무엇입니까?

다음과 같은 패턴(a+)+일치하지 않는 긴 문자열에 적용하면 기하급수적인 처리 시간이 발생합니다. 정규식 엔진은 기하급수적으로 더 많은 조합을 시도하면서 중단됩니다. 겹치는 패턴에 중첩된 수량자를 피하세요. 패턴(a+)+b"aaaaaaaaaaaaaaac"에서는 서버가 중단됩니다.

JavaScript 정규식은 Python과 동일하게 작동합니까?

대부분 그렇습니다. 이름이 지정된 그룹에는 차이가 있습니다(JS는(?<이름>), Python은 다음을 사용합니다.(?P<이름>)), 일부 미리보기/뒤돌아보기 기능 및 문자 클래스 표기법이 있습니다. 이 테스터는 JavaScript 엔진을 사용합니다. 동작이 다른 경우 대상 언어로 테스트합니다.

직접 시도해 볼 준비가 되셨나요?

정규식 테스터 더 많은 가이드