티스토리 뷰

http://javascript.about.com/library/blre09.htm

http://lawrence.ecorp.net/inet/samples/regexp-intro.php

 

javascript 의 string 함수중 match() 에서 regular expression 정규표현식을 사용할 수 있다.

근데 여기서 기본 설정은 greedy matching - longest match 이다.

예를 들면,

var a='b333b444b'

a.match(/b.+b/)

>> 'b333b444b'

위와 같은 경우에 가장 처음 'b' 에서 마지막 'b' 까지가 match 된 결과로 return 된다.

근데 가장 먼저 match 되는 녀석, 즉 b333b, 을 return 되게 하고 싶다면(이걸 reluctant matching 이라 한다.)

? 를 사용하면 된다.

var a='b333b444b'

a.match(/b.+?b/)

>> 'b333b'

여기서 주의할 점은 무조건  정규표현식의 마지막에 ? 를 붙이는 것이 아니라는 점이다.

위 처럼 + , * 같은 quantifier 뒤에 ? 를 붙이면 reluctant matching 이 될 것이다.

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함