Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- clean architecture
- swift documentation
- collectionview
- map
- 스위프트
- 리펙터링
- Xcode
- 애니메이션
- ribs
- MVVM
- Clean Code
- uiscrollview
- SWIFT
- combine
- ios
- 리펙토링
- RxCocoa
- 클린 코드
- Human interface guide
- swiftUI
- Protocol
- HIG
- tableView
- rxswift
- UITextView
- UICollectionView
- Refactoring
- 리팩토링
- Observable
- uitableview
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] # 키워드로 문자열 정규식 처리 방법 (rawString, regular expression, #, #\, escape, hash symbol, hash tag) 본문
iOS 응용 (swift)
[iOS - swift] # 키워드로 문자열 정규식 처리 방법 (rawString, regular expression, #, #\, escape, hash symbol, hash tag)
jake-kim 2023. 7. 5. 01:35rawString 개념
- rawString이란 문자열 안에 어떤 문자를 입력하더라도 그 문자 그대로 입력되는 것
rawString 아닌 경우 예시) 문자열 중간에 \r, \n 이와 같은 문자열이 있으면 tab이나 개행문자가 입력
print("value1 \n value2")
/*
value1
value2
*/
- Swift5 전에는 "value1 \n value2" 이 문자 그대로 rawString의 값이 들어가기 위해서는 \n 왼쪽에 escape를 넣어주어야 가능
print("value1 \\n value2")
// value1 \n value2
# 키워드로 rawString 만들기
- Swift5부터 #키워드를 사용하면 쉽게 rawString 생성이 가능
- #키워드 등장 이유) rawString으로 만들기 위해 문자 중간에 esacpe를 붙이면 가독성이 많이 떨어지는 문제가 발생
- #키워드를 rawString 만들 문자열 시작과 끝에 붙이기만 하면 적용 완료
print(#"value1 \n value2"#)
// value1 \n value2
escape와 #비교)
- #을 붙인 경우가, 코드를 읽는 입장에서 "이건 rawString"이다 라는것을 알기가 쉽고 중간에 escape문자도 들어가지 않게되어 가독성이 높아지는 효과
escape로 rawString 만든 경우 | #으로 rawString 만든 경우 |
"value1 \\n value2" | #"value1 \n value2"# |
- \가 들어가는 rawString 정규식을 만들때도 #을 사용하면 더욱 가독성이 증가
print("\\\\\\([^)]+\\)")
print(#"\\\([^)]+\)"#)
/*
\\\([^)]+\)
\\\([^)]+\)
*/
#을 사용할때 문자열 안에서 \n (개행)을 입력하고 싶은 경우
- #을 사용하고 escape를 사용하면 escape 기능 동작 x
print(#"abc\#ndef"#)
/*
abc\ndef
*/
- 이럴땐 \#을 사용하면 기존 escape 기능과 동일하게 사용이 가능
print(#"abc\#ndef"#)
/*
abc
def
*/
ex) #을 사용했을때 문자열 중간에 프로퍼티 값을 넣고 싶을때 역시도 #\ 키워드로 사용
let myName = "iOS 앱 개발 알아가기 jake"
let message = #"""
a: \(myName).
b: \#(myName).
"""#
print(message)
/*
a: \(myName).
b: iOS 앱 개발 알아가기 jake.
*/
* 전체 코드: https://github.com/JK0369/ExRegularExpressionStringWithHashTag
* 참고
https://www.hackingwithswift.com/articles/162/how-to-use-raw-strings-in-swift
'iOS 응용 (swift)' 카테고리의 다른 글
Comments