정규식 줄바꿈 포함 모든 문자 일치(js속성검색 테크닉)

seop
2 min readAug 18, 2020

--

줄바꿈 제외 모든 문자를 허용하는 정규식

greedy 방식

  • .* 라고 하면, 줄바꿈을 제외한 모든 문자에 매칭 된다. 한 줄에만 한정된 것이다.
  • greedy 방식은, 매칭될 수 있는 가장 최대의 길이를 매칭하는 방법이다.(자세한 설명은 생략, non-greedy 와의 차이는 2번째 주제에서 다룸)

non-greedy 방식

  • .*? 라고, ?를 붙이면 non-greedy 방식으로, 매칭될 수 있는 가장 최소의 길이를 매칭하게 된다.

줄바꿈 포함 모든 문자를 허용하는 정규식

greedy 방식

  • ((.|\n)*) 라고 하면, 줄바꿈을 포함한 모든 문자에 매칭 된다. 한 줄에만 한정된 것이 아닌, 여러줄을 매칭시킬 수 있는 것이다.
  • 줄바꿈 포함 모든 문자를 허용하는 정규식을 내가 찾게된 이유는, javascript 에서 특정 객체의 속성을 찾으려고 한 것이다.
  • greedy 방식은 매칭될 수 있는 최대길이를 매칭하기 때문에 다른 객체의 엉뚱한 속성이 매칭될 수 있다.
  • 따라서 사용하려면, non-greedy 방식을 사용해야 한다.

non-greedy 방식

  • ((.|\n)*?) 라고 하면, 특정 객체의 특정 속성을 정확히 검색하게 된다. 최소매칭을 하게 되니까.
  • application 속성 내의 view 속성을 보고 싶다면, application:((.|\n)*?)view: 라고 하면 되는 것이다.

--

--