Regex Tester — 실시간으로 정규식 테스트 및 디버그
정규식(regex)은 개발자의 무기고에서 가장 강력한 도구 중 하나이며 가장 비밀스러운 도구 중 하나입니다. 잘 만들어진 단일 정규식은 50줄의 문자열 구문 분석 코드를 대체할 수 있습니다. 실시간 테스터를 사용하면 IDE의 편집-저장-실행 주기 없이 패턴을 구축, 테스트 및 이해할 수 있습니다.
정규식 구문 빠른 참조
| 무늬 | 성냥 | 예 |
|---|---|---|
\\\\디 | 0~9의 임의의 숫자 | \\\\d{4}2024년 경기 |
\\\\w | 단어 문자(문자, 숫자, _) | \\\\w+"hello_world"와 일치합니다. |
^ / $ | 문자열의 시작/끝 | ^\\\\d{5}$5자리 우편번호만 일치합니다. |
[...] | 세트의 모든 문자 | [아이오우]모든 모음과 일치합니다. |
(?:...) | 비캡처 그룹 | 캡처 그룹에 저장하지 않은 그룹 |
(?=...) | 긍정적인 예측 | \\\\w+(?=\\\\.com)하위 도메인과 일치 |
북마킹할 가치가 있는 5가지 실제 정규식 패턴
- 이메일 확인:
/^[\\\\w.-]+@[\\\\w.-]+\\\\.[a-z]{2,}$/i - 미국 전화번호:
/^(\\\\+1)?[\\\\s.-]?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]?\\\\d{3}[\\\\s.-]?\\\\d{4}$/ - URL 추출:
/https?:\\\\/\\\\/[^\\\\s"']+/g - 강력한 비밀번호 확인:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$/ - 추가 공백을 제거합니다.
/\\\\s+/g단일 공백으로 대체
자주 묻는 질문
g, i, m 플래그는 무엇을 합니까?
g(전역): 첫 번째 일치 항목뿐만 아니라 모든 일치 항목을 찾습니다.나: 대소문자를 구분하지 않습니다.중(여러 줄): ^ 및 $는 문자열 경계 대신 줄 경계와 일치합니다.
내 정규식이 여기서는 작동하지만 Python에서는 작동하지 않는 이유는 무엇입니까?
이 테스터는 JavaScript의 정규식 엔진을 사용합니다. 파이썬의답장모듈에는 약간의 구문 차이가 있습니다. 특히 Python은 다음을 사용합니다.(?P<이름>...)명명된 그룹의 경우 JavaScript는(?<이름>...).
치명적인 역추적의 원인은 무엇입니까?
다음과 같은 패턴(a+)+일치하지 않는 긴 문자열에 적용하면 기하급수적인 시간 복잡성이 발생합니다. 이를 지원하는 엔진에서 원자 그룹 또는 소유 수량자를 사용하거나 중첩된 반복을 방지하기 위해 패턴을 재구성하십시오.