JavaScript 정규 표현식에서 다중 행 처리
다중 행 문자열 작업 시 정규 표현식은 고유한 특징을 가집니다. 일반 문자, 줄 바꿈 문자 및 탭 문자를 포함하는 다음 문자열 예제를 통해 이를 살펴보겠습니다:
let str = `111
222
333
444`;
줄 바꿈 문자
줄 바꿈 문자는 '\n' 명령을 사용하여 잡을 수 있습니다:
let res = str.replace(/\n/g, '!');
결과 변수에는 다음이 기록됩니다 (행 사이의 간격은 탭입니다):
`111! 222! 333! 444`;
탭 문자
탭 문자는 '\t' 명령을 사용하여 잡을 수 있습니다:
let res = str.replace(/\t/g, '!');
결과 변수에는 다음이 기록됩니다:
`
111
!222
!333
!444
`;
점(.)의 동작
다중 행 문자열의 경우 '.' 명령은 줄 바꿈 문자를 잡지 않습니다:
let res = str.replace(/./g, '!');
결과 변수에는 다음이 기록됩니다:
`
!!!
!!!!
!!!!
!!!!
`;
모든 문자
다중 행 문자열의 모든 문자를 잡으려면 [\s\S] 조합의 영리한 방법이 사용됩니다. 이 구조는 모든 일반 문자와 모든 줄 바꿈을 찾습니다:
let res = str.replace(/[\s\S]/g, '!');
결과 변수에는 다음이 기록됩니다:
`!!!!!!!!!!!!!!!!!!`;
캐럿(^)
'm' 수정자를 사용하여 다중 행 모드를 활성화할 수 있습니다.
이 경우 캐럿은 각 행의 시작 부분을 잡습니다:
let res = str.replace(/^/gm, '!');
결과 변수에는 다음이 기록됩니다:
`
!111
!222
!333
!444
`;
달러($)
다중 행 모드에서 '
명령은 각 행의 끝 부분을 잡습니다:
let res = str.replace(/$/gm, '!');
결과 변수에는 다음이 기록됩니다:
`
111!
222!
333!
444!
`;
실습 문제
다음 문자열이 주어집니다:
`
abc
def
ghi
jkl
`;
이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:
`
abc!
def!
ghi!
jkl!
`;
다음 문자열이 주어집니다:
`
abc
def
ghi
jkl
`;
이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:
`
! abc
! def
! ghi
! jkl
`;
다음 문자열이 주어집니다:
`
abc
def
ghi
jkl
`;
이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:
`!
abc
def
ghi
jkl
!`;
다음 문자열이 주어집니다:
`
abc
def
ghi
jkl
`;
이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:
`!
! abc
! def
! ghi
! jkl
!`;
다음 문자열이 주어집니다:
`
abc
def
ghi
jkl
`;
이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:
`!
abc!
def!
ghi!
jkl!
!`;
다음 문자열이 주어집니다:
`
abc
def
ghi
jkl
`;
이 문자열을 다음 형태로 만드는 정규 표현식을 작성하세요:
`
!abc
!def
!ghi
!jkl
`;