IT

0468. [perl] perl 정리5 - 정규표현 (regular expression)

띠앗머리 2016. 2. 24. 09:40

정규표현식은 Shell 메타문자와 용법이 다소 다르다

임의의 한문자 - 행바꿈은 제외

*  0 이상 반복

+  1 이상 반복

?  0 또는 1 반복 [ ? 앞의문자가 있거나 또는 없거나 . = 이는 비교문?A:B 구문과 유사]

선두

말미

{n,m}  n회이상 반복 m 이하반복

 

특수문자

\w  [0-9a-zA-Z_]  영문자,숫자와 _언더바 : word 워드로 기억

\W  [^0-9a-zA-Z_]  영문자,숫자와 _언더바 이외

\s  [\t\n\r\f]  공백 (반각 스페이스 개행) : string 스트링 문자 공백문자로 기억

\S  [^\t\n\r\f]  공백이외

\d  [0-9]  숫자 : decimal 숫자로 기억

\D  [^0-9]  숫자이외

 

패턴매칭

=~   / 패턴매칭 /; 매치한다

!~   / 패턴매칭 /; 매치하지 않는다

패턴매칭을 수행하는 문자열이 $_ 저장되어 있는 경우는 $_ =~ 생략할 있다

 

반복 횟수가 정해져 있지 않은 메타문자 * + ? {n,} {n,m} 사용한 경우에는 매치하는 문자열 가운데서 가장 문자열과 매치 됩니다.

메타문자 뒤에 ? 붙이면 가장 짧은 문자열과 매치됩니다.

 

특수변수

$& 문자열이 패턴과 매치하는 경우 매치된 문자열 전체가 $& 라는 특수변수에 저장 .

$1 $2  첫번째 두번째 그룹매칭 () 감싼다

 

매치연산자 옵션

매치하는것 모두 찾는다

대문자 소문자 구별하지 않는다

문자열을 복수행으로 취급한다

문자열을 단일행으로 취급한다.

패턴 내에 포함되는 반각 스페이스를 무시한다

 

변환연산자 옵션

tr/ /  변환연산자 tr 한문자씩 변환합니다.

 

)

[^ ]+?\.     -설명 . 으로 끝나는 가장 짧은 문자열

s/(grape)?fruit/grapefruit/g     -설명 grape 있거나 또는 없거나

/\d/g     -설명 수치를(숫자) 검색