ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 201020 - TIL
    TIL/2021 2020. 10. 21. 02:01

    Swift 문법

     

    오늘은 Property에 대해서 복습을 했다. 

    애매하게 알고 있던 computed property에 대해서 공부했고 self 속성과 Self 타입에 대해서도 다시 복습을 했다.

     

    이전에 fomat을 공부하면서 extension을 이용하여 string interpolation을 확장시켰던 코드도 다시 보았다.

    import UIKit
    
    let doubleNum = 12.345678
    
    let formatNum = String(format: "%.3f", doubleNum)
    print(formatNum)
    
    extension String.StringInterpolation {
        mutating func appendInterpolation(_ value: Double, _ num: Int) {
            let str = String(format: "%.\(num)f", value)
            appendInterpolation("\(str)")
        }
    }
    print("\(doubleNum, 2)")
    print("\(doubleNum, 5)")
    

     

    배운 것을 활용해서 만들었지만 크게 쓸 일 은 없을 거 같다.

     

     

     

     

    iOS

    iOS 포스팅도 시작하려고 준비 중이다.

    오늘은 프로젝트를 생성하고 각각의 명칭에 대해서 공부를 했다.

    UI를 구성하는 3가지 방법의 장단점도 알아보았다.

     

     

     

     

     

    그 외

    Regular Expression에 대해서 공부했다.

    문자를 검색할 때 아주 유용하게 사용할 수 있을 거 같다.

    아래의 홈페이지에서 개념들을 공부했다.

    분량이 조금 있어서 따로 포스팅을 할 계획이다.

    zvon.org/comp/r/tut-Regexp.html#intro

     

    Regular Expressions Tutorial @ZVON.org

     

    zvon.org

     

     

    let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"

     

    전에 로그인 화면을 만들 때 사용했던 정규표현식이다.

    그때 당시에는 이게 무슨 의미인지 전혀 몰랐지만 지금은 알 수 있다.

    [] 안에 들어있는 A~Z, 0~9, a~z 여기까지는 완벽하게 이해가 가는데 %+은 왜 넣은 건지는 이해가 안 된다.

    %+는 %가 1개 있거나 여러 개 있음을 의미하는데 %, %%, %%% 이런 게 필요한 이유가 없다고 생각하는데 왜 들어가 있을까?

    [A-Z0-9a-z._%-]+ 이렇게만 해도 된다고 생각하는데...

    이 정규표현식의 의미는  [] 안의 글자가 1개부터 아주 많은 수까지 있고 그 뒤에 @를 포함해야 한다.

    그리고 또 [] 안의 글자들이 1개부터 무한개까지 있고 .을 포함하고 A~Z, a~z를 포함하는 문자가 2개 이상 있는 것을 찾는다는 의미이다.

     

    정규표현식을 이용하면 글자를 찾기가 쉬우니 그러면 문자열 안에서 특정 조건을 만족하는 단어를 찾기 쉬워졌구나 라고 생각을 하고

    적용을 해보려 했다.

    import UIKit
    
    
    var lipsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    
    let target = #"\w{5}"#

     

    5글자의 단어를 찾으려고 target에 정규표현식을 작성했는데 String에서 option을 포함한 메서드 중에서 마땅한 게 보이지 않았다.

    그리고 문제는 5 글자씩 검색하지만 5글자가 넘어가는 글자에서 10글자라면 5글자를 검색하고 또 이어진 5글자를 검색해서 consectetur를 conse, ctetu, 이렇게 검색을 하는 문제가 발생했다.

     

    검색을 해보니 extension을 이용하거나 NSRegularExpression을 이용하여 사용하는 방법도 있었지만 내가 완벽하게 이해하기에는 무리가 있었다.

     

    728x90

    'TIL > 2021' 카테고리의 다른 글

    201022 - TIL  (0) 2020.10.23
    201021 - TIL  (0) 2020.10.22
    201019 - TIL  (0) 2020.10.20
    201018 - TIL  (1) 2020.10.18
    201016 - TIL  (0) 2020.10.17
Designed by Tistory.