Chapter 2. Text Patterns 2.1 ~ 2.3 서울시립대 전자전기컴퓨터공학과 데이터마이닝 연구실 G 노준호
Text Patterns? Text Patterns 목적 문장, 문단이나 글에서 사용자가 원하는 단어나 구문, 또는 형 식을 찾기 위해 Text Patterns 사용 Text Patterns 는 regular expression(regex) 라고도 함
Finding the Word “cat” /cat/ cat 뿐만 아니라 implicate, location 등 원하지 않는 단어도 찾음 / cat / cat 이 문장의 끝에 왔을 때 찾지 못함 /\bcat\b/ Cat 을 찾지 못함 /\bcat\b/i cats( 복수형 ) 을 찾지 못함 /\bcat\b|\bcats\b/i
Regular Expression Summary(1 / 4) Regular Expression Summary /cat/, /(cat)/, /[cat]/ 의 차이 /cat/, /(cat)/ “cat” 을 찾음 /[cat]/ “c” or “a” or “t” 을 찾음 /[act]/ 는 동일한 의미를 가지는 regex
Regular Expression Summary(2 / 4) {m, n} 의 의미 최소 m 번, 최대 n 번 repetition /s{3,4}/ 의 의미 “sss” 나 “ssss” 를 찾음 {3,3} 은 간략히 {3} 으로 대체 가능 자주 쓰이는 {0,1}, {1, }, {0, } 은 special character 를 정의 {0,1}? {1, }+ {0, }*
Regular Expression Summary(3 / 4) /cat/, /(cat)/ 의 차이 repetition 에서 차이를 보임 /cats?/ or /cats{0,1}/ o“cat”, “cats” 를 찾음 /(cats)?/ or /(cats){0,1}/ o“cats”, “catscats” 를 찾음 o( ) 은 grouping 을 위해 사용 ( 하나의 unit 으로 취급 ) [ ] 에서도 자주쓰이는 경우를 special character 를 정의
Regular Expression Summary(4 / 4) Special Characters
Character Ranges and Finding Telephone Numbers(1 / 4) Character Ranges and Finding Telephone Numbers 아래 그림과 같은 형식의 phone number 를 찾으려고 함 1 이 한 번 있거나 없어도 됨. ( ) 가 있고 ( ) 안에는 3 개의 숫자가 있어야 함 3 개의 숫자, -, 4 개의 숫자가 있어야 함
Character Ranges and Finding Telephone Numbers(2 / 4) /(1 ?)?/ “”, “1”, “1 “ 을 matching /\(\d{3}\)/ “( 숫자 3 개 )” 를 matching “(000)” / ?/ “”, “ “ 을 matching /\d{3}-\d{4}/ “ 숫자 3 개 - 숫자 4 개 ” 를 matching “ ”, “ ”, … 전부 matching oSpecial character “^”, “$” 사용
Character Ranges and Finding Telephone Numbers(3 / 4) 을 만족하는 regular expression ^(1 ?)? 주의점 “”, “1”, “ 1” 은 matching “ “ 은 match 되지 않음 위 regex 에서 “(000) ” 은 match 가 되지만 “ (000) ” 은 match 되지 않음.
Character Ranges and Finding Telephone Numbers(4 / 4)
Perl Variables and the Function split (1 / 3) Perl Variables and the Function split perl code output
Perl Variables and the Function split (2 / 3) perl code output 공백은 관심 없음. 단어가 중요 whitespace 에 관한 regex 를 사용
Perl Variables and the Function split (3 / 3) perl code output
foreach loop perl code output
The Function join perl code output
Match Variables(1 / 2) perl code output
Match Variables(2 / 2) perl code output