This pattern has 2 capturing groups with 2 flags (gi) and is broken down into 14 parts below.
Flags
gglobal - find all matches in the input, not just the first oneiignore case - letters match regardless of upper or lower case^Start-of-string anchor (or start of a line with the m flag)(?<user>Start of a named capturing group "user" - saves its match under that name[a-z0-9._%+-]A single character from the set: the range "a" to "z", the range "0" to "9", the character ".", the character "_", the character "%", the character "+", the character "-"+Repeated one or more times)End of the group@A literal "@" character(?<domain>Start of a named capturing group "domain" - saves its match under that name[a-z0-9.-]A single character from the set: the range "a" to "z", the range "0" to "9", the character ".", the character "-"+Repeated one or more times\.A literal "." character (the backslash removes its special meaning)[a-z]A single character from the set: the range "a" to "z"{2,}Repeated 2 or more times)End of the group$End-of-string anchor (or end of a line with the m flag)
정규식 설명자는 정규식을 가져와 한 번에 하나의 구성으로 일반 영어로 번역합니다. ^(?<user>[a-z0-9._%+-]+)@와 같은 빽빽한 선을 곁눈질하는 대신... 레이블이 지정된 분석이 표시됩니다. 이 부분은 앵커이고, 이름이 지정된 캡처 그룹이며, 이 문자 클래스는 "소문자, 숫자, 점 또는 하이픈"을 의미하며, 이 수량자는 "한 번 이상"을 의미합니다. 그것은 당신이 읽을 수있는 체크리스트로 기호의 벽을 바꿉니다.
정규식은 설계상으로 컴팩트하여 강력하지만 검토하기 어렵습니다. 동일한 패턴을 여러 가지 방법으로 쓸 수 있으며 단일 흩어져 있는 백슬래시 또는 탐욕스러운 수량어가 의미를 완전히 바꿉니다. 코드 검토, 이전 구성 파일 또는 스택 오버플로 응답에서 익숙하지 않은 정규식을 읽는 것은 일반적으로 엔진을 정신적으로 시뮬레이션하는 것을 의미합니다. 이 도구는 해당 시뮬레이션을 수행하며 중첩 그룹 및 모양을 포함하여 패턴의 구조를 반영하는 정렬된 들여쓰기 목록으로 결과를 표시합니다.
모든 것이 코드에서 사용하는 동일한 JavaScript 정규식 엔진에서 클라이언트 측을 실행하므로 여기에 표시되는 플래그 동작과 유효성은 프로덕션과 일치합니다. 패턴은 업로드되지 않고, 아무 것도 기록되지 않으며, 페이지가 로드되면 도구가 오프라인에서 계속 작동합니다. 이는 개인 코드베이스에서 가져오거나 민감한 데이터 형식과 일치하는 정규식을 이해하려는 경우 중요합니다.
설명자는 데이터에 적합한 패턴이 아니라 패턴이 말하는 내용을 알려줍니다. 이를 확인하려면 정규식 테스터의 실제 입력에 대해 실행합니다. 브라우저의 자체 엔진으로 컴파일하기 때문에 PCRE에는 존재하지만 ECMAScript에는 존재하지 않는 구성이 두 가지 다른 방식으로 작동합니다. A++, 원자 그룹(?>...) 및 재귀(?R)와 같은 소유 수량은 엔진 자체 메시지와 함께 완전히 거부됩니다. 미묘한 경우는 \a와 \z입니다. U 플래그가 없으면 JavaScript가 ID 이스케이프를 사용하지 않으므로 PHP 또는 Python에서 복사한 패턴은 문자열 경계가 아닌 리터럴 A 또는 Z와 일치하는 것으로 설명되며 오류가 발생하지 않습니다. (A+)+와 같은 중첩 수량도 정상적으로 설명되며, 파국 역추적은 구조에서 볼 수 있는 것이 아니라 입력의 런타임 속성입니다.
주변 슬래시 없이 패턴을 입력합니다. 표현 자체만 있으면 됩니다. 작업한 이메일 일치 예제에서 시작하려면 샘플 로드를 클릭합니다.
패턴이 사용하는 플래그(g, i, m, s, u, y, d)를 전환합니다. 설명자는 각 플래그가 수행하는 작업을 보고하고 해당 플래그 조합에 대해 패턴을 검증합니다.
각 토큰은 일반 영어 설명과 함께 순서대로 나열됩니다. 내포된 그룹은 들여쓰기되어 패턴의 구조를 한 눈에 볼 수 있습니다.
다음 독자가 디코딩할 필요가 없도록 전체 일반 텍스트 분석을 복사하여 코드 주석, 풀 요청 메모 또는 문서에 붙여넣습니다.
모든 앵커, 문자 클래스, 수량자, 그룹 및 이스케이프는 엔진이 읽는 순서대로 설명과 함께 자체 라인을 얻습니다.
캡처, 캡처하지 않음, 명명된 그룹 및 네 가지 모양의 모든 유형에 레이블이 지정되고 들여쓰기되어 중첩 구조가 쉽게 따라갈 수 있습니다.
G, I, M, S, U, Y, D 플래그는 각각 문맥에 설명되어 있으므로 구문뿐만 아니라 전체 일치를 어떻게 변경하는지 이해합니다.
패턴은 브라우저 네이티브 RegExp 엔진으로 유효성 검사하므로, 사용자가 사용하기 전에 잘못된 표현식이 정확한 오류로 잡힙니다.
Extract email addresses, URLs, phone numbers, and IPv4 addresses from any block of text. De-duplicate, sort, and copy the results. Runs client-side.
Find and replace text with a regular expression, using capture group backreferences like $1 and named groups, with full flag support
Test regular expressions against sample text with live match highlighting, capture groups, and full flag support
Build, test, and debug regular expressions with real-time matching and a comprehensive cheatsheet
0 comments
No comments yet. Be the first to share your thoughts!