텍스트 교체와 분할
정규식 연산으로 문자열을 변환합니다.
텍스트 교체와 분할은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
대체 및 분할
정규식은 일치에만 사용하는 것이 아닙니다. 스위프트 문자열에서는 일치한 텍스트를 replace하고 pattern을 기준으로 split하여 수동 루프 없이 문자열을 변환할 수 있습니다.
replacing(_:with:)
replacing(_:with:)는 pattern의 모든 일치 결과를 대체 텍스트로 바꾼 새 문자열을 반환합니다.
let s = "a1b2c3"
let cleaned = s.replacing(/\d/, with: "*")
print(cleaned)전체 단어 대체하기
pattern에는 어떤 정규식이든 사용할 수 있으므로, 숫자가 연속된 모든 부분을 한 번에 하나의 대체 문자열로 바꿀 수 있습니다.
let s = "order 1234 done"
let masked = s.replacing(/\d+/, with: "#")
print(masked)replace로 직접 수정하기
replace(_:with:)는 복사본을 반환하는 대신 var 문자열을 그 자리에서 수정합니다.
var text = "hello world"
text.replace(/o/, with: "0")
print(text)클로저로 대체하기
replacing(_:with:)의 클로저 형식은 각 일치 결과를 받아 대체 문자열을 반환하므로, 계산된 대체를 사용할 수 있습니다.
let s = "a1 b2 c3"
let result = s.replacing(/\d+/) { match in
String((Int(match.0) ?? 0) * 10)
}
print(result)대체에서 캡처 사용하기
클로저 내부에서 일치 결과의 캡처 그룹을 읽어 대체 텍스트를 만들 수 있습니다.
let s = "2024-05"
let out = s.replacing(/(\d+)-(\d+)/) { m in
"\(m.2)/\(m.1)"
}
print(out)split(separator:)
문자열은 정규식과 함께 split(separator:)을 지원하며, pattern이 일치하는 곳마다 문자열을 나눕니다.
let csv = "a,b;c,d"
let parts = csv.split(separator: /[,;]/)
print(parts)공백을 기준으로 분할하기
일반적인 작업으로, /\s+/을 사용해 연속된 공백을 기준으로 문자열을 단어로 나눌 수 있습니다.
let line = "the quick brown"
let words = line.split(separator: /\s+/)
print(words.count)
print(words)분할 횟수 제한하기
maxSplits 매개변수는 분할 횟수의 최대값을 지정하여 나머지 부분을 그대로 유지합니다.
let s = "a-b-c-d"
let parts = s.split(separator: /-/, maxSplits: 1)
print(parts)다듬기 및 대체하기
작업을 결합할 수 있습니다. 원치 않는 pattern을 대체한 다음 split하여 pipeline에서 input을 정리하고 토큰화합니다.
let raw = " one,, two ,,three "
let cleaned = raw.replacing(/,+/, with: ",")
let items = cleaned.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces) }
print(items)replacing과 replacingOccurrences 비교
정규식 replacing은 pattern에 대해 동작하지만, 기존의 replacingOccurrences(of:with:)는 리터럴 부분 문자열만 처리합니다. pattern을 기반으로 수정할 때는 정규식 형식을 사용하십시오.
let s = "cat hat bat"
print(s.replacing(/[ch]at/, with: "X"))빠른 확인
"a1b2".replacing(/\d/, with: "-")는 무엇을 생성합니까?
복습
replacing(_:with:)(문자열 형식 또는 클로저 형식)과 제자리에서 수정하는 replace를 사용해 일치 결과를 replace할 수 있습니다. 또한 split(separator:)과 maxSplits를 사용해 정규식을 기준으로 문자열을 split할 수 있습니다. 이를 통해 정규식이 완전한 텍스트 변환 도구 모음이 됩니다.
자주 묻는 질문
“텍스트 교체와 분할” 강의는 무료인가요?
네 — “텍스트 교체와 분할” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“텍스트 교체와 분할”에서 뭘 배우나요?
정규식 연산으로 문자열을 변환합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Swift Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“텍스트 교체와 분할” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 정규식 리터럴과 매칭
- 캡처 그룹
- RegexBuilder DSL
- 텍스트 교체와 분할