정규 표현식은 문자열에 나타난 특정 문자 조합과 대응시키기 위해 사용되는 패턴이다.
정규표현식은 객체이다.
Character | Meaning |
---|---|
+ | 앞의 표현식이 1회 이상 연속으로 반복되는 부분과 대응됩니다. {1,} 와 같은 의미 예를 들어, /a+/ 는 "candy"의 'a'에 대응되고 "caaaaaaandy" 의 모든 'a'들에 대응되지만, "cndy" 내의 어느 부분과도 대응되지 않습니다 |
^ | 입력의 시작 부분에 대응됩니다. 만약 다중행 플래그가 참으로 설정되어 있다면, 줄 바꿈 문자 바로 다음 부분과도 대응됩니다.예를 들어, /^A/ 는 "an A" 의 'A'와는 대응되지 않습니다, 그러나 "An E" 의 'A'와는 대응됩니다.'^' 가 문자셋([abc]) 패턴의 첫 글자로 쓰인다면, 그 때는 전혀 다른 의미를 가집니다.예를 들어, /[^javascript]/는 [ ]안의 각 문자를 제외하고 검색한다. |
[\d] | 숫자만 선택 |
[\D] | 숫자가 아닌것만 선택(/d와 반대)-한글,영문,공백,특수기호 등 |
[\w] | 문자와 숫자를 선택(그러나 한글은 선택되지않는다) |
[\W] | 문자와 숫자가 아닌 것을 선택(/w와 반대)-한글,공백,특수기호 |
[a-zA-Z가-힣] | 영어소문자,대문자,한글 모두 선택 |
[\s] | 공백만 선택 |
[\S] | 공백이 아닌 것만 선택 |
. | 개행 문자를 제외한 모든 단일 문자와 대응됩니다. 예를 들어, /.n/는 "nay, an apple is on the tree"에서 'an'과 'on'에 대응되지만, 'nay' 에는 대응되지 않습니다. |
? | 앞의 표현식이 0 또는 1회 등장하는 부분과 대응됩니다. {0,1} 와 같은 의미입니다. 예를 들어, /e?le?/ 는 "angel"의 'el' 에 대응되고, "angle"의 'le' 에 대응되고 또한 "oslo" 의 'l'에도 대응됩니다. |
* | 앞의 표현식이 0회 이상 연속으로 반복되는 부분과 대응됩니다.{0,} 와 같은 의미입니다. 예를 들어, /bo*/ 는 "A ghost booooed" 의 'boooo' 와 대응되고, "A bird warbled" 의 'b'에 대응되지만 "A goat grunted" 내의 어느 부분과도 대응되지 않습니다. |
{n,m} | n과 m은 양의 정수이고, n <= m를 만족해야 합니다. 앞 문자가 최소 n개, 최대 m개가 나타나는 부분에 대응됩니다. m이 생략된다면, m은 ∞로 취급됩니다. |
(x) | 다음의 예제가 보여주는것처럼 'x'에 대응되고, 그것을 기억합니다. 괄호는 포획 괄호라 불립니다. 패턴 /(foo) (bar) \1 \2/ 안의 '(foo)' 와 '(bar)'는 문자열"foo bar foo bar"에서 처음의 두 단어에 대응되고 이를 기억합니다.패턴 내부의 \1와 \2는 문자열의 마지막 두 단어에 대응됩니다.\1, \2, \n과 같은 문법은 정규식의 패턴 부분에서 사용됩니다. 정규식의 치환 부분에서는 $1, $2, $n과 같은 문법이 사용되어야 합니다. 예를 들어, 'bar foo'.replace( /(...) (...)/, '$2 $1')와 같이 사용되어야 합니다. $& 패턴은 앞에서 대응된 전체 문자열을 가리킵니다. |