JavaScript 정규 표현식에서 다중 행 처리

다중 행 문자열 작업 시 정규 표현식은 고유한 특징을 가집니다. 일반 문자, 줄 바꿈 문자 및 탭 문자를 포함하는 다음 문자열 예제를 통해 이를 살펴보겠습니다:

javascriptlet str = `111
  222
  333
  444`;

줄 바꿈 문자

줄 바꿈 문자는 '\n' 명령을 사용하여 잡을 수 있습니다:

javascriptlet res = str.replace(/\n/g, '!');

결과 변수에는 다음이 기록됩니다 (행 사이의 간격은 탭입니다):

javascript`111!  222!  333!  444`;

탭 문자

탭 문자는 '\t' 명령을 사용하여 잡을 수 있습니다:

javascriptlet res = str.replace(/\t/g, '!');

결과 변수에는 다음이 기록됩니다:

javascript`
                111
                !222
                !333
                !444
            `;

점(.)의 동작

다중 행 문자열의 경우 '.' 명령은 줄 바꿈 문자를 잡지 않습니다:

javascriptlet res = str.replace(/./g, '!');

결과 변수에는 다음이 기록됩니다:

javascript`
                !!!
                !!!!
                !!!!
                !!!!
            `;

모든 문자

다중 행 문자열의 모든 문자를 잡으려면 [\s\S] 조합의 영리한 방법이 사용됩니다. 이 구조는 모든 일반 문자와 모든 줄 바꿈을 찾습니다:

javascriptlet res = str.replace(/[\s\S]/g, '!');

결과 변수에는 다음이 기록됩니다:

javascript`!!!!!!!!!!!!!!!!!!`;

캐럿(^)

'm' 수정자를 사용하여 다중 행 모드를 활성화할 수 있습니다. 이 경우 캐럿은 각 행의 시작 부분을 잡습니다:

javascriptlet res = str.replace(/^/gm, '!');

결과 변수에는 다음이 기록됩니다:

javascript`
                !111
                !222
                !333
                !444
            `;

달러($)

다중 행 모드에서 ' 명령은 각 행의 끝 부분을 잡습니다:

javascriptlet res = str.replace(/$/gm, '!');

결과 변수에는 다음이 기록됩니다:

javascript`
                111!
  222!
  333!
  444!
            `;

실습 문제

Задание 1

다음 문자열이 주어집니다:

javascript`
  abc
  def
  ghi
  jkl
`;

이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:

javascript`
  abc!
  def!
  ghi!
  jkl!
`;
Задание 2

다음 문자열이 주어집니다:

javascript`
  abc
  def
  ghi
  jkl
`;

이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:

javascript`
!  abc
!  def
!  ghi
!  jkl
`;
Задание 3

다음 문자열이 주어집니다:

javascript`
  abc
  def
  ghi
  jkl
`;

이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:

javascript`!
  abc
  def
  ghi
  jkl
!`;
Задание 4

다음 문자열이 주어집니다:

javascript`
  abc
  def
  ghi
  jkl
`;

이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:

javascript`!
!  abc
!  def
!  ghi
!  jkl
!`;
Задание 5

다음 문자열이 주어집니다:

javascript`
  abc
  def
  ghi
  jkl
`;

이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:

javascript`!
  abc!
  def!
  ghi!
  jkl!
!`;
Задание 6

다음 문자열이 주어집니다:

javascript`
  abc
  def
  ghi
  jkl
`;

이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:

javascript`
                    !abc
                    !def
                    !ghi
                    !jkl
`;