(TIL) 20210826

2021. 8. 27. 00:09TIL(Today I learned)

반응형

📕Facts(한 것)


  • 프로그래머스 문제풀기
  • JS 공부하기
  • 노마드 코더 챌린지 참여하기
  • 학교 서류 제출하기

 

📕Findings(배운것)


C++ 에서 정규표현식을 사용할때 사용가능한 메서드가 3가지가 있다.

  1. regex_replace()
  2. regex_search()
  3. regex_match()

replace는 메서드를 보고 한 눈에 어떤 역할을 하는지 알아챌 수 있다.
문자열에서 찾고싶은 문자열을 찾고, 대체하는 메서드이다.

두 번째 search 메서드는 문자열에서 regex를 검색하는 역할을 한다.
if(regex_search()) {
// do something...
}
위와 같은 형태로 주로 사용된다.

세 번째 match 메서드는 이름을 봤을때는 search와 차이가 없어 보인다.(오늘 위 두개를 헷갈려서 문제푸는데 오래걸렸다.)
하지만 match는 search에서 한 단계 더 나아간(?) 형태로, 문자열이 주어진 패턴과 같은지 확인 해주는 메서드이다.
주로 파일을 검색하거나, 학과_학번_이름 과 같은 형식의 파일을 확인할때 유용하다.

#include <string> 
#include <regex> 
using namespace std; 
string third(string new_id) { 
  regex r("\\.\\."); 
  while(regex_search(new_id, r)) { //regex r이 문자열 new_id안에 있으면 
    new_id = regex_replace(new_id, r, "."); // 대체한다. 
  } 
  return new_id; 
}


새로 알게된 사실은 ' . '(온점)을 '\\' 없이 regex에 사용하게 된다면, 임의의 문자로 인식하기 때문에
모두 '.'으로 바뀌는 불상사가 발생할 수 있다.


📕Feeling(느낀 점)


노마드 코더 챌린지에 참여하면서 내가 안다고 생각했던 것도, 막상 코드로 구현하려 하면 잘 하지 못하는 것을 발견했다.
꺼진불도 다시보자...

addEventListner를 활용한 간단한 이벤트 처리를 해 보았다.

📕여담


 

반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20210828  (0) 2021.08.29
(TIL) 20210827  (0) 2021.08.28
(TIL) 20210824  (0) 2021.08.24
(TIL) 20210823  (0) 2021.08.24
(TIL) 20210822  (0) 2021.08.22