자바스크립트/정규표현식
정규표현식의 플래그란? (what is flag in regular expression?)
정규표현식의 플래그란? (Regular Expression flags) 플래그로 정규표현식의 동작방식을 변경할 수 있다. 정규표현식 전체의 동작방식에 영향을 미친다. /regex/flags regex 자리에 정규표현식 패턴이 오고, flags 에 플래그가 온다. 플래그(flags)는 modifiers 라고 불리기도 한다. 플래그의 종류 g (global) i (case-insensitive) m (multiline) s (dotall) u (unicode) y (sticky) g (global) 플래그 설명과 예제 정규표현식의 기본 동작은 입력 문자열에서 매칭된 첫번째 케이스만을 찾아낸다. g (global) 플래그는 모든 케이스를 찾아내도록 한다. g 플래그를 적용하지 않는다면 입력된 문자열: hell..
정규표현식 (Regular Expression) 이란?
정규표현식이란? 패턴을 통해 원하는 텍스트를 매칭시키는 도구이다. 특정 문자열이 있는지 검사하거나 특정 문자열만 변경하거나 하는 등의 기능에 사용된다. 정규표현식 엔진이 동작하는 방식 보통 정규표현식의 검색 방식을 '값을 소비한다' 고 표현한다. 일단 패턴에 매칭되는 문자를 찾으면 매칭된 문자열을 소비하기 때문이다. 소비한다는 것은 엔진이 매칭된 문자의 위치를 전진시킨다는 것이다. 그래서 소비 이후에는 더이상 이전의 문자가 매칭되지 않는다. 단, 소비되었다고 해서 문자가 지워지거나 변경된 것은 아님을 아는 것이 중요하다. 단 Lookaround 의 경우에는 값을 소비하지 않는다. 정규표현식의 구성 요소 메타 문자열(Metacharacters): 정규표현식에서 특수한 의미를 갖는 문자들을 말..
자바스크립트 replace 메서드 정규식 특수 대체 패턴
정규표현식 특수 대체 패턴 (Special Replacement Patterns) 이란? String.prototype.replace() 에서 사용 가능한 특수한 대체 패턴이다. 패턴 살펴보기 $&: 매칭된 문자를 삽입하고 싶을 때 사용하는 패턴이다. $`: 매칭된 문자의 앞 부분을 삽입하고 싶을 때 사용하는 패턴이다. $': 매칭된 문자의 뒷 부분을 삽입하고 싶을 때 사용하는 패턴이다. $n: n 번째 캡쳐링 그룹을 삽입하고 싶을 때 사용하는 패턴이다. $$: $ 자체를 삽입하고 싶을 때 사용하는 패턴이다. 활용 예제 살펴보기 아래에 나오는 [ㄱ-힣] 은 한글 유니코드를 전부 매치시킬 수 있는 정규표현식이다. $& "hello. 안녕 world. 세상".replace(/[ㄱ-힣]+/g, "($&..
자바스크립트 정규표현식, named capturing group 이란?
Named Capturing Group 이란? 정규표현식의 한 기능으로 패턴에 매칭된 그룹에 특정한 이름을 주는 것이다. (?pattern) 와 같은 문법으로 사용 가능하다. 예제 코드 (자바스크립트) 코드 /(?\d{4})-(?\d{2})-(?\d{2})/.exec("2002-07-28"); 콘솔 결과 (4) ['2002-07-28', '2002', '07', '28', index: 0, input: '2002-07-28', groups: {…}] 0: "2002-07-28" 1: "2002" 2: "07" 3: "28" groups: day: "28" month: "07" year: "2002" index: 0 input: "20..
자바스크립트 정규 표현식, exec() 메서드란?
RegExp.prototype.exec() 메서드란? 인자로 받은 문자열 (str) 에서 match 를 찾아내고 result array 혹은 null 을 반환한다. 자바스크립트 정규표현식을 다룰 때 쓴다. 코드 예제 검색 성공 사례 const regex1 = RegExp("foo*", "g"); const str1 = "table football, foosball"; let array1; while ((array1 = regex1.exec(str1)) !== null) { console.log("array1", array1); console.log(`Found ${array1[0]}. Next starts at ${regex1.lastIndex}.`); } /* array1 ['foo', ..