정규식 테스터

아래에 정규표현식과 테스트 문자열을 입력하세요. 매치가 실시간으로 강조됩니다. JavaScript regex 플래그를 지원합니다. 모든 처리는 브라우저에서 로컬로 수행됩니다.

/ / g
복사됨!
#위치일치그룹

정규식 플래그

플래그설명
g전역 - 첫 번째뿐만 아니라 모든 매치를 찾습니다
i대소문자 구분 없는 매칭
m여러 줄 - ^$가 줄 경계와 일치합니다
sDotall - .가 줄바꿈과 일치합니다
u유니코드 - 전체 유니코드 매칭 활성화
y직전 일치가 끝난 위치에서만 일치합니다

일치 항목은 시작 위치와 잡아낸 모든 그룹, 이름 있는 그룹까지 함께 나열됩니다. 실제로 확인하려는 것이 대개 그것이기 때문입니다. 바꾸기 모드는 같은 패턴을 표준 치환 문법으로 돌리므로 $1과 $이 여러분 코드에서와 똑같이 동작합니다. 일치 개수에는 상한이 있습니다. 모든 위치에서 일치하는 패턴은 그렇지 않으면 페이지가 그릴 수 있는 것보다 많은 행의 표를 만들어 버리기 때문입니다.

또 데이터를 손으로 손보고 있나요

매번 브라우저 탭에서 고쳐야 하는 페이로드는 원래 코드가 할 일입니다. 저희는 시스템 사이에서 데이터를 옮기는 연동, 파서, 서비스를 만들고, 그 과정에서 조용히 데이터를 망가뜨리는 것들을 고칩니다.

무엇을 옮기는지 알려주세요

자주 묻는 질문

패턴이 왜 첫 번째 일치만 찾나요
g 플래그가 꺼져 있기 때문입니다. 그것이 없으면 정규식은 설계상 첫 일치에서 멈춥니다. 유효성 검사에서는 그편이 맞고, 문서를 훑을 때는 아닙니다. 켜면 모든 일치가 나열됩니다.
이름 있는 그룹을 지원하나요
네. 번호 그룹과 이름 그룹 모두 일치마다 표에 나옵니다. (?<year>\d{4}) 를 쓰는 패턴이면 그룹 1 옆에 year가 함께 보입니다. 실제로 확인하려는 것은 대개 그것이지, 패턴이 일치하느냐 자체가 아닙니다.
바꾸기 모드는 $1을 어떻게 다루나요
여러분의 코드와 똑같이 다룹니다. 패턴과 치환 문자열을 언어 자체의 치환 함수에 넘기기 때문입니다. 그래서 $1과 $<name>은 그룹을 가리키고, $&는 일치 전체, $$는 달러 기호 자체입니다.
왜 일치 나열을 도중에 멈췄나요
상한이 있습니다. 모든 위치에서 일치하는 패턴은 글자마다 한 행을 만들고, 그 표는 쓸모 있어지기 훨씬 전에 쓸 수 없게 되기 때문입니다. 이 상한에 부딪혔다면 대개 패턴이 의도보다 넓습니다.
패턴 때문에 페이지가 멈춥니다. 왜 그런가요
어떤 패턴은 파국적으로 되짚어 갑니다. (a+)+ 같은 중첩 수량자는 거의 일치하는 문자열에서 지수 시간이 걸릴 수 있습니다. 이는 이 페이지가 아니라 패턴의 성질이며, 알아 둘 값어치가 있습니다. 같은 패턴은 여러분 서버에서도 똑같이 굴 테니까요.