본문 바로가기
프로그래밍 놀이터/Web

[Script] Regular Expression(RegExp) Tutorial ( 정규식 기초강좌 )

by 돼지왕 왕돼지 2012. 10. 6.
반응형




Regular Expression Test Site
http://www.regular-expressions.info/javascriptexample.html

- Regexp 란은 / / 를 쓰지 않고 바로 regular expression 을 적어주면 된다.

- [Test Match] 버튼은 subject string 에 대한 regexp 적용 결과를 true/false alert 해준다.

- [Show Match] 버튼은 match된 string part과 포지션이 alert 결과로 나옴.

- [Replace] 버튼은 regular expression 에 맞춰 replace된 결과물이 "Result" textfield 에 나옴.





출처 : http://www.w3schools.com/jsref/jsref_obj_regexp.asp

Basic Form

- var regexp = /패턴/플래그;  
  // escape 문자는 \ 를 붙여서 표현.
 

- var regexp = new RegExp( "패턴", 플래그 );  
  // escape 문자는 \\ 를 붙여서 표현. 2개라는 것에 주의 



Modifier ( 플래그 )

- i : case-insensitive
- g : global match ( 명시되지 않으면 첫번째 찾은 녀석만 해당 )
- m : multiline matching



Brackets

- [abc] : abc 중에 하나라도 들어감

- [^abc] : abc중에 하나라도 들어가지 않음

- [0-9] : 0~9 중 하나라도 들어감

- [A-z] : upper lower 상관없이 아무 글자가 하나라도 들어감

- [red|blue|green) : 세 단어 중 하나라도 들어감



Metacharacters

- . : newline 이나 terminator 없는 single char

- \w : word char

- \W : non-word char

- \d : a digit char

- \D : a non-digit char

- \s : whitespace

- \S : non-whitespace

- \b : word의 시작점

- \B : word의 시작점이 아님

- \0 : null char

- \n : new line char

- \f : form feed char : 커서를 다음 페이지의 최초 위치로 이동시키는 문자

- \r : carriage return : 커서를 현재 행에 맨 좌측으로 옮기기.

- \t : tab char

- \v : vertical tap char

- \xxx : an octal number xxx

- \xdd : a hexadecimal number dd

- \uxxxx : hexadecimal xxxx 로 표시된 Unicode char



Quantifiers

- n+ : 적어도 한개의 n 이 있음 ( n, nn, nnn )

- n* : n이 있을수도 없을수도 있음 ( , n, nn, nnn )

- n? : n이 없거나 한번 있음 ( , n )

- n{X} : n이 X갯수만큼 있음

- n{X,Y} : n이 X 이상 Y이하 갯수만큼 있음

- n{X,} : n이 X개 이상 있음

- n$ : n이 string의 마지막에 옮.

- ^n : string 의 최초에 n 이 옮.

- ?=n : n 바로 앞에 오는 string
  ( ex) is this all there is         pattern) is(?=all)         result) is ( this에 있는 is )

- ?!n : n 바로 다음에 오지 않는 string



RegExp Object Properties

- patt.lastIndex : matching 된 last index

var str="The rain in Spain stays mainly in the plain";

var patt1=/ain/g;


while (patt1.test(str)==true) 

{

    document.write("'ain' found. Index now at: " + patt1.lastIndex);

    document.write("<br />");

}

</script>

 
- patt.multiline : multiline 이 설정되었는가

- patt.global : global이 설정되었는가?

- patt.ignoreCase : ignoreCase가 설정되었는가?

- patt.source : RegExp pattern text



RegExp Object Methods

- exec() : first match 를 돌려줌.

- test() : match 결과를 true/false로 돌려줌.


도움이 되셨다면 손가락 꾸욱~ ( 로그인 필요 x )



 
반응형

댓글