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
`;