-
-
[정규표현식] Greedy and lazy quantifiers카테고리 없음 2021. 12. 11. 23:26
Greedy and lazy quantifiers Greedy Search 수량사는 처음 봤을 때 간단해보이지만 사실 굉장히 까다롭다. 'a "witch" and her "broom" is one'이라는 문장에서 시작하는 쌍따옴표부터 기호 안의 단어와 끝나는 쌍따옴표까지 검색하고 싶다. 정규표현식 /".+"/g를 이용하여 검색한다면 검색 결과로 우리가 원하는 "witch"와 "broom"이 아니라 "witch" and her "broom"이 나올 것이다. 그 이유는 정규표현식의 검색 알고리즘을 이해해야 알 수 있다. 먼저 표현식이 가장 첫번째 글자는 "이다. 정규표현식 엔진은 0번째부터 "를 찾는다. 첫 글자인 a는 "가 아니기 때문에 다음 순서의 글자로 넘어간다. 바로 다음 "를 찾은 뒤, 다음 패턴인..
-
[정규표현식] +, *, ?, {n}스터디플래너/공부하기 2021. 12. 10. 20:43
수량과 관련된 기호 { n } 수량을 표현하는 가장 쉬운 방법은 { } 괄호 안에 숫자를 넣는 것이다. 수량사는 문자나 문자 클래스, 세트와 범위에 수량사를 덧붙이고 얼마나 되는지 덧붙이는 것이다. 다섯 개의 숫자를 검색하는 방식은 \d\d\d\d\d로 표현할 수 있지만 \d{5}로도 표현할 수 있다. \b\d{5}\b처럼 앞 뒤에 \b를 붙여주면 딱 다섯 개의 숫자만 검색할 수 있다. \d{3, 5}는 3개~5개의 숫자를 검색할 수 있고, \d{3,}는 최소 세 개 이상의 숫자를 검색할 수 있다. 약칭 + 한 개 이상을 의미한다. \d+는 \d{1,}와 같다. ? 0개 혹은 1개를 의미한다. {0,1}과 같다. 있거나 없는 선택적인 것을 의미한다. colou?r는 color와 colour를 의미한다. ..
-
[정규표현식] [ ] 와 [ - ]스터디플래너/공부하기 2021. 12. 9. 23:31
Set and Ranges Set [ ] 안에 여러개의 문자나 문자 클래스를 넣으면 주어진 문자나 문자 클래스 중 어떤 문자든 찾겠다는 의미이다. 예를 들어 [eao]는 'e', 'a', 'o' 중 하나를 의미한다. 이를 세트라 한다. 세트는 [ ] 안에 여러개의 문자가 있을지라도 그 중 정확하게 하나만 일치하면 된다. Ranges [ ] 안에 문자의 범위가 포함될 수 있다. 예를 들어 [a-z]는 a부터 z 사이의 소문자를 의미하고, [0-5]는 0부터 5 사이의 숫자를 의미한다. [ - ]를 이용하여 포함되는 범위를 검색할 수 있다면 해당 범위를 제외할 수도 있다. 시작 문자열을 의미했던 ^(캐럿 문자열)을 [ ] 내부에 사용하면 해당 범위를 제외한 내용을 검색한다.예를 들어 [0-5]는 0부터 5 ..
-
패스트캠퍼스 챌린지 최종 후기스터디플래너/패캠챌린지 2021. 12. 7. 06:16
+ 2022년 1월 8일 추가 늦었지만 패스트 캠퍼스 챌린지 성공 후 환급 받았다는 인증😊 [서론] 드디어 챌린지가 끝났다. 아니, 30일 동안 블로그에 수강 후기를 작성하는 메인 미션을 마쳤고 성공한 것으로 인정받았다. 하지만 최종 미션을 성공한 것으로 인정받고 환급 일정이 어떻게 될지 알려줘야 정말 챌린지가 끝났다고 생각할 것 같다. 위와 같이 최종임무에 대한 안내 메일을 받은 것이 마치 회사 면접 합격 소식을 들은 것처럼 기쁘지만 건강 검진 결과로 최종 탈락할 수 있듯 최종미션을 성공하지 못한다면 챌린지는 결국 실패한 거니까….^^! 정신 차리고 최종 미션 끝내자. 공백 미포함 4,000자 결코 만만히 볼 게 아니다. 글의 구성을 어떻게 작성해야 할 지 고민해봤는데 미션 안내받은 예시가 나쁘지 않은..
-
[정규표현식] 이스케이프 문자스터디플래너/공부하기 2021. 12. 5. 22:57
\(백슬래쉬)는 정규표현식에서 숫자를 나타내는 '\d'처럼 문자클래스를 의미하는 특별한 문자이다. 정규표현식에는 \(백슬래쉬)외에도 효과적으로 검색할 수 있는 문자들이 있다. [ \ ^ $ . | ? * + ( ) 이스케이프 문자 \(Escaping) 다른 문자가 아니라 . 을 검색하고 싶을 때 . 앞에 \를 붙인다. 특별한 효과가 있는 ( 를 검색할 때도 \(로 검색해야 한다. 지금 계속 사용된 \를 검색하고 싶을 때도 마찬가지로 앞에 \를 덧붙여 \\로 검색한다. /(Slash) / 는 Javascript에서 정규표현식을 열고 닫을 때 사용한다. / ...(정규표현식 패턴)... / new RegExp / 를 열고 닫아 정규표현식을 선언할 수 있지만 new RegExp를 이용해서 정규표현식을 할 수도..
-
[정규표현식] \b스터디플래너/공부하기 2021. 12. 5. 10:01
회사에서 맡은 업무 중 정규표현식을 사용하는 경우가 많다. 쇼핑몰을 만들었던 프로젝트에서 회원가입할 때 아이디나 휴대폰 번호를 검증하는데 사용하긴 했지만 내가 잘 알고 썼다기보다 검색을 이용했다. 아이디, 휴대폰 번호 등 형식이 정해진 것들에 정규표현식을 사용하기보다 회사 업무에 맞춰 정규표현식을 사용하다보니 미리 공부해야겠다는 생각이 들었다. 모던 자바스크립트(https://ko.javascript.info/)를 이용해서 공부하려고 했지만 5번 자료까지만 번역이 되어있고 그 뒤론 모두 영어이다. 내가 번역에 기여할 자신은 없고 개인적으로 정리하며 공부하면 좋지 않을까 싶어 블로그에 남긴다. 단어 사이의 경계를 구분짓는 \b 문자열의 시작을 판단하는 조건인 캐럿(^), 문자열의 끝을 판단하는 조건인 달러..
-
패스트캠퍼스 챌린지 30일차스터디플래너/패캠챌린지 2021. 11. 30. 06:03
Part 4. SQL CH04_02. 분기문(case-when), 집합연산(union), 집합연산(union all), 서브쿼리(column, from, where) 드디어 챌린지 마지막 날이다. 마지막은 마지막이고 일단 오늘 후기를 쓰긴 써야 하니까 후기를 쓴다. 한 달 동안 해낸 것에 대해 뭐라도 쓰고 싶지만 만약 한 달 챌린지가 성공한다면 최종 후기를 작성해야 하는데 그 글자 수는 여태까지 공백 제외 500자의 열 배인 공백 제외 5,000자이므로 그때 쓰면 된다고 생각한다. 제발 성공하길 바란다. 어젠가 그제도 썼지만 나는 Java에 비해 SQL에 자신이 있었다. 그래서 오픈 카톡방에서 코딩테스트 후 SQL에 뒤통수 맞았다고 어려웠다 하는 사람들을 보면서 그래? 나라면 어렵지 않았을 텐데 뭐 이런..