논리적 사고

정규표현식에 m을 붙이면 점이 줄바꿈까지 찾을까?

A와 B 사이의 공백을 줄바꿈으로 바꾸고 s·m 설정을 비교합니다. 점이 허용하는 문자와 점이 반복되는 횟수를 따로 시험합니다.

A와 B 사이에 줄바꿈 한 개가 있을 때 A.B는 기본 설정과 m에서 불일치, s에서 일치하며 m은 줄 경계와 관련된다는 비교도
A와 B 사이에 줄바꿈 한 개가 있을 때 A.B는 기본 설정과 m에서 불일치, s에서 일치하며 m은 줄 경계와 관련된다는 비교도
그림 크게 열기 ↗SVG 저장

그림에서 무엇을 볼까요?

A와 B 사이에 줄바꿈 한 개가 있을 때 A.B는 기본 설정과 m에서 불일치, s에서 일치하며 m은 줄 경계와 관련된다는 비교도

정규표현식은 글자 배열의 규칙으로 문자열을 찾는 표현입니다. 자바스크립트의 A.B에서 A와 B는 그 글자 자체를, 점은 그 사이에서 허용되는 문자 하나를 뜻합니다. A 공백 B는 찾을 수 있지만 A 다음 줄에 B가 있는 경우는 기본 설정에서 찾지 못합니다. 점이 기본적으로 줄 종결 문자를 제외하기 때문입니다.

“점은 아무 문자나 뜻한다”는 AI의 설명만 믿으면 여러 줄 자료에서 누락이 생길 수 있습니다. 활동은 공백, LF(엘에프, 줄바꿈 문자), CRLF(씨알엘에프, 두 문자로 된 줄바꿈), 역슬래시와 n이라는 두 글자를 구별해 보여 줍니다. 눈에 보이는 줄 수와 내부 문자 배열은 같은 정보가 아닙니다.

함께 확인할 점

자바스크립트의 실제 RegExp를 짧고 고정된 문자열에 실행합니다. s는 점에 줄 종결 문자도 허용하고 m은 줄 경계 기호 ^와 $의 판정을 바꿉니다. 다른 언어·엔진의 규칙이나 임의의 긴 정규표현식은 시험하지 않습니다.

생각해 볼 질문

공백·LF·CRLF에서 A.B의 기본·m·s 결과를 먼저 예상하고 실제 결과와 비교하세요. 다른 결과가 나온 칸은 문자 종류와 반복 횟수 중 어떤 조건 때문인지 설명해 보세요.

← 논리적 사고 그림 더 보기