[자바스크립트] replace 정규표현식 gi는 무엇을 의미할까? 자바스크립트에서 replace를 활용해서 정규표현식을 적용할 때 gi라는 패턴을 사용하곤 합니다. 아래 예시를 살펴봅시다. hellllo worLd 문자열에서 l을 a로 모두 치환하고 싶을 경우 아래와 같이 정규표현식을 적용하면 되는데요.
정규표현식에 사용된 gi의 의미는 아래와 같습니다. 정규표현식
그렇기 때문에 만약 위 예시에서 정규표현식에 사용된 i를 빼게 된다면, 대문자 L은 치환되지 않고, heaaaao worLd 결과를 확인할 수 있습니다.
💖 저자에게 암호화폐로 후원하기 💖 아이콘을 클릭하면 지갑 주소가자동으로 복사됩니다
정규식은 학생때도 배웠고 가끔 접하긴 하는데 할때마다 어려운것 같다. 학생때는 아~ 이런거구나 한적도 있는것 같은데 코딩할려고 하면 막상 매칭시킬려고 하면 왜 이렇게 어려운건지.... 할때마다 찾아야 되고.... 정규식만 자유자재로 써도 내공이 한갑자는 상승할것 같다는 생각도 하지만... 그렇다고 막상 따로 공부는 잘 안되고.... 자바스크립트에서는(여기서만 이런건지 잘 모르겠지만...) 정규식을 /.../로 묶어준다. var pattern = /rules/; 식으로 써주면 된다. ^ : 시작표시(매칭이 처음부터 되어야 함) 더 자세한 문법은 Wikipedia 참고 옵션 /rules/ig 와 같이 써준다. g : 글로벌의 뜻. 전역 매칭을 한다. 처음부터가 아닌 전체에서 정규식이 맞는걸 찾는다. 정규식 테스트 사이트 덧) 특수문자를 매칭시켜주려면 \\를 사용한다. \\. 이나 \\| 처럼..... 2008.7.11
정규 표현식(regular expression)은 문자 검색과 교체에 사용되는 패턴으로 강력한 기능을 제공합니다. 자바스크립트에선 RegExp 객체와 문자열 메서드를 조합해 정규표현식을 사용할 수 있습니다. 정규 표현식(‘regexp’ 또는 'reg’라고 줄여서 사용)은 패턴(pattern) 과 선택적으로 사용할 수
있는 플래그(flag) 로 구성됩니다. 정규식 객체를 만들 땐 두 가지 문법이 사용됩니다. ‘긴’ 문법은 다음과 같습니다.
‘짧은’ 문법은 슬래시(빗금)
슬래시 짧은 문법을 사용하든 긴 문법을 사용하든 상관 없이 위 예시에서의 두 문법의 중요한 차이점은 슬래시를 사용한 짧은 문법은 코드를 작성하는 시점에 패턴을 알고 있을 때 사용합니다. 아마 대다수가 이런 경우에 속할 겁니다. 반면
플래그정규 표현식엔 검색에 영향을 주는 플래그를 선택적으로 붙일 수 있습니다. 자바스크립트는 6개의 플래그를 지원합니다. i i 플래그가
붙으면 대·소문자 구분 없이 검색합니다. 따라서 A 와 a 에 차이가 없습니다(아래 예시 참조).g g 플래그가 붙으면 패턴과 일치하는 모든 것들을 찾습니다. g 플래그가 없으면 패턴과 일치하는 첫 번째 결과만 반환됩니다.m 다중 행 모드(multiline mode)를 활성화합니다. 자세한 내용은 앵커 ^와 $의 여러 행 모드, 'm' 플래그에서 다룰 예정입니다.s . 이 개행 문자 \n 도 포함하도록 ‘dotall’ 모드를 활성화합니다. 자세한 내용은
문자 클래스에서 다룰 예정입니다.u 유니코드 전체를 지원합니다. 이 플래그를 사용하면 서로게이트 쌍(surrogate pair)을 올바르게 처리할 수 있습니다. 자세한 내용은 유니코드: 'u' 플래그와 \p{...} 클래스에서 다룰 예정입니다.y 문자 내 특정 위치에서 검색을 진행하는 ‘sticky’ 모드를 활성화 시킵니다. 자세한 내용은 Sticky flag "y", searching at
position에서 다룰 예정입니다.색상 정규 표현식을 설명할 때 사용되는 밑줄의 색상은 각각 다음과 같은 상징이 있습니다.
str.match로 검색하기앞서 언급한 바와 같이 정규 표현식은 문자열 메서드와 조합하여 사용합니다.
str.replace로 치환하기메서드 예시:
여기서 두 번째 인수
regexp.test로 일치 여부 확인하기패턴과 일치하는 부분 문자열이 하나라도 있는 경우 메서드
지금까지 살펴본 내용은 기본에 불과합니다. 이제 이어지는 챕터들에선 더 많은 정규 표현식과 예시들, 메서드들을 살펴보도록 하겠습니다. 메서드들에 대한 정보는 Methods of RegExp and String에서 확인할 수 있으니 참고 바랍니다. 요약
|