점은 기본 설정에서 줄바꿈을 제외합니다
정규표현식은 글자 배열의 규칙으로 문자열을 찾는 표현입니다. 자바스크립트의 A.B에서 A와 B는 그 글자 자체를, 점은 그 사이에서 허용되는 문자 하나를 뜻합니다. A 공백 B는 찾을 수 있지만 A 다음 줄에 B가 있는 경우는 기본 설정에서 찾지 못합니다. 점이 기본적으로 줄 종결 문자를 제외하기 때문입니다.
“점은 아무 문자나 뜻한다”는 AI의 설명만 믿으면 여러 줄 자료에서 누락이 생길 수 있습니다. 활동은 공백, LF(엘에프, 줄바꿈 문자), CRLF(씨알엘에프, 두 문자로 된 줄바꿈), 역슬래시와 n이라는 두 글자를 구별해 보여 줍니다. 눈에 보이는 줄 수와 내부 문자 배열은 같은 정보가 아닙니다.
s와 m은 바꾸는 규칙이 다릅니다
s 플래그는 닷올(dotAll, 점이 줄 종결 문자도 허용하는 모드)을 켭니다. A와 B 사이에 LF 하나가 있으면 /A.B/s는 일치합니다. m 플래그는 멀티라인(multiline, 여러 줄 경계 처리)이라는 이름이지만 점의 허용 범위를 넓히는 설정은 아닙니다.
m은 시작·끝을 나타내는 ^와 $가 각 줄의 경계에서도 일치할 수 있게 합니다. 이 활동의 A.B에는 그 경계 기호가 없으므로 m만 켜도 줄바꿈을 건너가지 못합니다. 플래그 이름을 “여러 줄이니까 m”으로 연결하기보다 어느 연산 규칙이 바뀌는지 확인해야 합니다.
줄바꿈이 두 문자라면 점 하나로는 부족합니다
CRLF는 CR과 LF라는 두 문자의 조합입니다. /A.B/s의 점은 줄 종결 문자도 허용하지만 한 자리만 차지합니다. CR을 점으로 읽으면 그 다음에 아직 LF가 남아 있으므로 바로 B를 찾는 조건이 맞지 않습니다. 따라서 s를 켜도 이 경우는 일치하지 않습니다.
패턴을 A.*B로 바꾸면 점 뒤의 별표가 점의 반복을 0회 이상 허용합니다. s와 함께 쓰면 CR과 LF 두 문자를 모두 지나 B에 도달합니다. 허용하는 문자의 종류를 바꾸는 일과 반복할 수 있는 횟수를 바꾸는 일은 별개입니다. 화면에서 둘을 한 번에 바꾸지 말고 어느 조건이 결과를 바꿨는지 기록해 보세요.
화면의 역슬래시 n이 언제나 줄바꿈은 아닙니다
문자열을 표시하는 코드나 로그는 보이지 않는 LF를 역슬래시 n이라는 표기로 나타낼 수 있습니다. 그러나 실제 데이터에 역슬래시와 n 두 글자가 들어 있는 경우도 있습니다. 활동의 “역슬래시와 n 두 글자” 선택은 후자입니다. 실제 LF 한 개와 길이도 다릅니다.
결과 영역은 원문을 줄바꿈이 보존되는 상자와 JSON 표기 두 방식으로 보여 줍니다. JSON 표기에서 실제 LF는 \n으로, 실제 역슬래시는 \\로 이스케이프됩니다. AI가 복사된 로그를 분석할 때는 표시용 변환을 거친 문자열인지 원래 데이터인지 먼저 확인해야 합니다.
찾았다는 결과의 범위도 함께 남깁니다
이 활동은 A.B 또는 A.*B로 일치하는 부분이 있는지 확인합니다. 전체 입력 형식을 검증하거나 모든 일치를 수집하는 프로그램은 아닙니다. A.*B를 실제 긴 문서에 쓰면 의도보다 넓은 구간을 잡을 수 있으며, 엔진과 표현식에 따른 성능 문제도 따로 살펴야 합니다.
AI에게 결과를 보고할 때에는 패턴, 플래그, 원래 문자 배열, 실행한 엔진과 일치한 문자열을 함께 적으세요. 공백에서는 맞고 LF에서는 실패했다는 작은 대조가 “모든 문자”라는 설명에서 빠진 조건을 드러냅니다. 이 실험은 특정 AI의 성능 측정이 아니라 생성한 코드 설명을 실제 실행으로 점검하는 활동입니다.

