Presentation is loading. Please wait.

Presentation is loading. Please wait.

1. 테스트 스크립트 작성 2. 간단한 패턴 정의하기 3. 수량자 사용하기 4. 문자 클래스 사용하기 5. 전체 매치하기 6. 변경자의 사용 7. 패턴 매치와 치환.

Similar presentations


Presentation on theme: "1. 테스트 스크립트 작성 2. 간단한 패턴 정의하기 3. 수량자 사용하기 4. 문자 클래스 사용하기 5. 전체 매치하기 6. 변경자의 사용 7. 패턴 매치와 치환."— Presentation transcript:

1 1. 테스트 스크립트 작성 2. 간단한 패턴 정의하기 3. 수량자 사용하기 4. 문자 클래스 사용하기 5. 전체 매치하기 6. 변경자의 사용 7. 패턴 매치와 치환

2  정규표현식 ◦ 특정 문제를 해결하기 위한 일종의 도구  특정 문제의 예  1) 대소문자 구분 없이 car 라는 텍스트가 포함된 파일을 찾는데, 단어 중간에 car 가 들 어있는 경우는 제외해야 됨  2) 웹 페이지를 동적으로 생성하고 있는데 DB 의 텍스트를 웹 상에 출력하고자 하며, 해 당 텍스트가 URL 형식일 경우 를 이용하여 해당 텍스트를 클릭할 수 있 도록 해야 함  3) 회원 가입 폼의 이메일 주소 입력 칸에 이메일 주소를 형식에 맞게 넣었는지 확인해 야 함  4) size 라는 글자를 iSize 라고 치환하고 싶은데 해당 단어가 문장 처음에 나오는 것만 치환해야 함  매우 독특한 프로그래밍 과제들 ◦ 찾고자 하는 텍스트가 매우 가변적일 때 사용 ◦ 패턴을 작성하고 특정 값을 해당 패턴에 적용시켜서 사용

3  패턴 적용을 위한 preg_match() 함수 ◦ 특정한 패턴이 문자열과 매치가 되느냐에 따라 0 혹은 1 을 반환 ◦ 첫 번째 매치가 발생하면 실행 중단 ◦ 모든 매치를 찾으려면 preg_match_all() 함수 사용 ◦ 패턴 적용시 인용부호 사용  작은 따옴표 사용 권장 ( 큰 따옴표 안의 문자는 특별한 의미를 가질 수 있음 ) ◦ 패턴을 구분자 안에 넣어서 사용  영문, 숫자, 역슬래쉬 제외한 다른 문자 사용 가능 preg_match(pattern, subject);

4  Script 13.1 - 패턴과 문자열을 입력받아 결과를 반환하는 스크립트

5  리터럴 (literal) ◦ 문자 그대로의 값을 의미  메타 문자 ◦ 리터럴 문자가 아닌 특별한 의미를 가지고 있는 기호 ◦ 메타 문자 리스트

6  메타 문자의 예 ◦. 은 개행 문자를 제외한 모든 단일 문자와 일치  ex) a, b, 2, 5.. 등등 ◦ ^ 은 문자열의 시작을 나타내며 ^ 뒤에 오는 문자로 시작되는 문자와 일치  ex) ^k : kid, korea 와 일치 / dark 와는 불일치 ◦ $ 는 문자열의 끝을 나타내며 ^ 뒤에 오는 문자로 끝나는 문자와 일치  ex) $s : Torres 와 일치 / Spain 과는 불일치 ◦ | 는 선택적인 의미로 | 의 앞, 뒤에 있는 문자들과 or 의 의미로 일치  ex) st|rea : abstract, Hargreaves 와 일치  스크립트 9.1 에서 생성한 pcre.php 로 테스트

7  수량자 ◦ 다수의 문자 출현을 의미하는 메타 문자  ex) a, aa, aaa, aaaa 와 같이 단어의 연속되는 문자와의 매치 ◦ 수량자 리스트  수량자의 예 ◦ ex) a{3} : aaa 와 일치 ◦ ex) a{3,} : aaa, aaaa, aaaaa… 와 일치 ◦ ex) colou?r : color, colour 와 일치

8  문자 클래스 ◦ 모든 숫자 / 문자와 매칭할 때 간편하게 사용 가능  리터럴만 사용한다면 패턴이 매우 길어짐 ◦ 문자 클래스 리스트 ◦ 대괄호 안에 문자를 써 넣는 방법으로 생성  ex) [aeiou] : 영어 모음과 일치

9  문자 클래스에서의 규칙 ◦ 메타 문자는 리터럴로 취급  리터럴로 취급되지 않는 예외 단어 4 개  \ : 이스케이프  ^ : 부정연산자  - : 범위  ] : 클래스 닫음  문자 클래스의 예 ◦ ^\d{5}& : 모든 다섯 자리의 숫자와 일치 ◦ can\s?not : can not 이나 cannot 과 일치

10  패턴이 어떻게 일치하는지 확인하기 ◦ $match 변수에 매치 결과가 저장됨 ◦ 모든 매치 결과를 저장하려면 preg_match_all() 함수를 사용  Greediness 매치 / Less greedy 매치 ◦ ex) 를 Link 와 매치할 경우  Greediness( 탐욕적 ) 매치 : 3 번 매치  까지   전체 구문  Less greedy( 덜 욕심내기 ) 매치 : 2 번 배치  까지  ◦ 가능한 많이 매치하는 방식 vs 가장 작은 데이터와 매치하는 방식 preg_match(pattern, subject, $match);

11  Script 13.2 – 매치되는 결과를 출력하는 스크립트

12  패턴 변경자 ◦ 패턴 구분기호 뒤에 위치하며 정규표현식의 행동을 변경 ◦ 패턴 변경자 리스트 ◦ 패턴 변경자의 예  ex) /for.*/I : for, FOR, For, foR 등과 매치

13  패턴을 검색하고 치환하기 ◦ count 인자를 통해서 치환이 일어날 횟수 지정 가능 ◦ 모든 cat 을 dog 으로 치환하는 예  ex) $str = preg_replace(‘/cat/’, ‘dog’, ‘I like my cat.’); preg_replace(pattern, replacement, subject[, count]);

14  Script 13.3 – 매치된 값을 다른 값으로 치환하는 스크립트

15  1. 2 페이지에 나와있는 특정 문제의 예 네 가지에 대한 정규표현식을 작성해보 자.  2. 영문 스포츠 뉴스에서 두 명의 선수 이름만을 모두 추출하는 정규식을 두 가 지 이상 작성해보자. ex) 축구 뉴스에서 ‘Messi’ 와 ‘Xavi’ 를 정규식을 이용하여 추출하기


Download ppt "1. 테스트 스크립트 작성 2. 간단한 패턴 정의하기 3. 수량자 사용하기 4. 문자 클래스 사용하기 5. 전체 매치하기 6. 변경자의 사용 7. 패턴 매치와 치환."

Similar presentations


Ads by Google