자바스크립트 정규 표현식 (Regular Expressions)

정규 표현식 (Regular Expression) 이란?

정규 표현식은 검색 패턴(search pattern)을 구성하는 일련의 문자입니다.

텍스트(in a text)에서 데이터를 검색 할 때, 이 검색 패턴을 사용하여 검색 대상을 설명할 수 있습니다.

정규 표현식은 단일 문자(a single character) 또는 더 복잡한 패턴(a more complicated pattern)이 될 수 있습니다.

정규 표현식을 사용하여 모든 유형의 텍스트 검색(text search)텍스트 바꾸기(text replace) 작업 을 수행할 수 있습니다

구문

Example

예제 설명:

/w3schools/i는 정규 표현식(a regular expression)입니다..

w3schools는 패턴입니다 (검색에 사용될).

i는 수식어(modifier)입니다. (대/소문자를 구별하지 않도록(case-insensitive) 검색을 수정합니다)


String 메소드 사용

자바스크립트에서 정규 표현식은 종종 2개의 string 메소드를 함께 사용합니다: search() and replace().

The search() 메소드는 표현식(expression)을 사용하여 일치하는 것을 검색하고, 일치하는 것의 위치를 반환합니다.

The replace() 메소드는 패턴이 대체될(replaced) 곳에 수정된 문자열을
반환합니다.


정규표현식(a Regular Expression)으로 String search() 사용

Example

문자열(in a string)에서 대/소문자를 구분하지 않고 “w3schools”을 검색하기 위해 정규 표현식을 사용합니다:

문자열(a string)에서 “w3Schools”을 검색하고, 일치하는 위치를 표시합니다:

버튼을 클릭하면 n의 결과가 표시됩니다.


문자열(String)로 String search() 사용

search 메소드는 search 인수(argument)로 문자열을 직접 사용할 수도 있습니다. 문자열 인수(string argument)는 정규 표현식(a regular expression)으로 변환됩니다:

Example

문자열에서(in a string) “W3schools”을 검색하기 위해 문자열(a string)을 사용합니다:

문자열(a string)에서 “W3Schools”을 검색하여, 일치하는 문자의 위치를 표시합니다:


정규 표현식으로 String replace() 사용

Example

대/소문자를 구분하지 않는 정규 표현식을 사용하여 문자열에서 Microsoft를 W3Schools로 대체합니다:

Please visit Microsoft and Microsoft!

문자열로 String replace() 사용

replace() 메소드는 검색 인수(argument)로 문자열을 사용할 수도 있습니다:

아래 단락에서 “Microsoft”를 “W3Schools”로 바꿉니다.

Please visit Microsoft!


숙지하셨나요?


정규 표현식 수식어 (Regular Expression Modifiers)

수식어(Modifiers)를 사용하여 대/소문자를 구분하지 않고 더 포괄적인(global) 검색을 할 수 있습니다:

Modifier Description
i 대/소문자 구분없이 검색
g 일치하는 모든 것을 검색 (첫 번째에서 멈추지 않고 모든 것을 검색)
m Perform multiline matching

정규 표현식 패턴

대괄호는 일련의 문자를 찾기 위해 사용합니다:

Expression Description
[abc] 대괄호 사이에 있는 문자를 찾습니다.
[0-9] 대괄호 사이에 있는 모든 숫자를 찾습니다.
(x|y) | 로 구분된 것 중 하나가 일치하면 찾습니다,

메타문자(Metacharacters)는 특별한 의미(special meaning)가 있는 문자입니다:

Metacharacter Description
\d 문자 및 숫자(a digit)(특수문자 및 공백 제외)를 찾음
\s 공백을 찾음
\b 단어(a word)의 시작 부분 또는 끝 부분(at the beginning or at the end)에서 일치하는 항목 찾기
\uxxxx 16 진수 xxxx로 지정된 Unicode 를 찾기

수량자(Quantifiers)는 갯수(quantities)를 정의합니다:

Quantifier Description
n+ n을 하나 이상 포함하는 문자가 일치
n* n을 0 또는 하나 이상 포함하는 문자가 일치
n? n을 0또는 하나 포함하는 문자가 일치

RegExp 객체(Object) 사용

자바스크립트에서 RegExp 객체는 미리 정의된 속성 및 메소드가 있는 정규 표현식 객체입니다.


test() 사용

test() 메소드는 RegExp 표현식 메소드입니다.

문자열에서 패턴을 검색하고 결과에 따라 true 또는 false를 반환합니다.

다음 예제는 문자열에서 “e”문자를 검색합니다:

Example

다음 문단에서 “e”를 찾습니다:

The best things in life are free!

문자열에 “e”가 있기 때문에 위의 코드는 true를 출력합니다:

true

정규식을 변수에 먼저 넣지 않아도 됩니다. 위의 두 줄을 한 줄로 줄일 수 있습니다:


exec() 사용

exec() 메소드는 RegExp 표현식 메소드입니다.

문자열에서 지정된 패턴을 검색하고 발견된 텍스트를 반환합니다.

일치하는 항목이 없으면 null을 반환합니다.

다음 예제는 문자열에서 “e”문자를 검색합니다:

Example 1

다음 문단에서 “e”를 검색하십시오:

The best things in life are free!

문자열에 “e”가 있기 때문에, 위 코드는 다음과 같이 e를 출력합니다:

e


Complete RegExp Reference

전체 참조 정보는 Complete JavaScript RegExp Reference를 참조하십시오.

이 참조에는 모든 RegExp 속성 및 메서드에 대한 설명과 예제가 들어 있습니다.

정규 표현식을 테스트 해 볼 수 있는 사이트: regexr.com

출처: JavaScript Regular Expressions

답글 남기기