0165. [Perl] Perl 문법정리 13 정규표현식 (언어자료 처리를 위한 Perl)
정규표현 : 문자열에 존재하는 규칙을 식으로 표현한 것으로 문자열의 표현식
◆메타문자
. 임의의 하나의 문자 Per. = Per로 시작하는 모든문자
* 0회이상 반복 ab* = a ab abbb ...
+ 1회이상 반복 ab+ = ab abb abbb ...
? 0회 또는 1회반복 ab? = a ab
^ 단어의 맨처음
$ 단어의 맨 끝
| 선택 ab|ba = ab 또는 ba
{n} 문자 n개 허용 s{2} = ab
{n,} 문자 n개 이상 허용 s{2,} = ab abc abcd abcde ....
{n,m} 문자 n개 이상 m개 이하 허용 s{2,3} = ab abc
\n 문자로 취급 \? \+ \* \$
/k{3}ing/
keeping kolding
/pa{2,5}ing/
patterning padding patting
◆문자클래스 : 여러문자를 모아서 하나의 클래스로 지정하는 것
[0123] 0 1 2 3 중 하나를 가리킨다
[0,1,2,3] 위와 동일
문자클래스에 ^ 를 포함하면 해당 문자 클래스가 아닌 모든 것.
[^0123] 0123 이외의 모든문자
[0123456789] 는 [0-9] 와 동일하다
◆특수문자
\w [0-9a-zA-Z] 대소영문자, 모든숫자
\W [^0-9a-zA-Z] 대소영문자, 숫자이외
\s [\t\n\r\f] 공백문자
\S [^\t\n\r\f] 공백문자 이외
\d [0-9] 숫자
\D [^0-9] 숫자 이외
◆ 정규표현은 패턴을 찾기 위한 검색식이다
일치하는 패턴찾기
$str =~ /$pattern/
검색대상 =~ /정규표현/
일치하지 않는 패턴찾기
$str !~ /$pettern/
검색대상 !~ /정규표현/
특수변수 : 패턴매칭에 성공한 경우 문자열은 특수변수에 리턴된다
$& 일치하는 문자열 전체
$` 일치하는 문자열 앞에 있는 문자열
$' 일치하는 문자열 보다 뒤에 있는 문자열
$1 $2 ... 첫번째 두번째 ... 그룹에 속하는 문자열
$+ 마지막 그룹에 속하는 문자열
검색옵션
g 일치하는 것을 모두 찾는다
i 대소 문자를 구별하지 않는다
m 문자열을 복수행으로 취급 (개행문자 취급)
s 문자열을 단일행으로 취급 (개행문자 취급안함)
x 반각 스페이스를 취급하지 않는다 (무슨말인지 모르겠음)
◆문자열 변경 및 치환
변경문자열 =~ tr/변경대상문자열/변경내용/
$str =~ tr/a-z/A-Z/
치환문자열 =~ s/치환대상문자열/치환내용/
$str =~ s/dog/cat/
'IT' 카테고리의 다른 글
0167. [LINUX] pmap (0) | 2015.07.13 |
---|---|
0166. [LINUX] paste (0) | 2015.07.13 |
0164. [Perl] Perl 문법정리 12 표준입출력 및 인자 (언어자료 처리를 위한 Perl) (0) | 2015.07.13 |
0163. [Perl] Perl 문법정리 11 파일테스트 (언어자료 처리를 위한 Perl) (0) | 2015.07.13 |
0162. [Perl] Perl 문법정리 10 파일핸들 (언어자료 처리를 위한 Perl) (0) | 2015.07.13 |