펄에서 자신이 원하는 문자를 찾고 싶을 때가 있을 겁니다
또는 문자열을 찾고 싶을 때가 있을 것이죠
그때 index( ) 함수를 사용할 수 있습니다.
해당되는 문자 또는 문자열이 어디에 위치해 있는지 알려주죠
단, 인덱스 번호로 알려줍니다
또 만약 발견을 못하면 -1이 반환됩니다.
소스 보면서 해보죠
사용방법은 아래와 같습니다.
index(찾을 문자열, 찾는 값)
반환 되는 값은 해당 문자 또는 문자열이 위치한 인덱스입니다.
$where 스칼라 변수에 e를 찾는 인덱스 값이 반환될 것입니다.
e는 인덱스 기준으로 1이므로 1이 반횐되죠
이렇게요!
이번엔 문자열을 찾아볼까요?
lesojin 이라는 문자열을 찾습니다.
찾을 값, 찾는 값은 둘다 스칼라 변수로 두었습니다
lesojin 문자열을 11번째 인덱스에서 시작하므로 11이 출력될 것입니다.
이렇게요!
근데 이것의 문제는 동일 문자열이 있을 경우 가장 맨 왼쪽이 나온다는 겁니다.
그럼 그 값이 있는 이후의 값을 찾으려면 어떻게 해야 할까요?
3번째 인자로 인덱스 시작 위치를 넣어주면 됩니다.
3을 넣으면 3번째 인덱스부터 찾아라~ 이런 것이죠
그리고 rindex 함수가 있습니다.
rindex 함수는 왼쪽이 아닌 오른쪽부터 탐색을 진행합니다
위 사진들처럼 사용할 수 있습니다
3번 인덱스부터 hello 라는 문자열을 찾으니 14번째가 나옵니다.
그리고 오른쪽부터 hello를 찾으니 13번째가 나오게 됩니다
그리고 펄에서 문자열을 자를 수도 있습니다.
split 같은 함수도 있지만 substr을 이용할 수도 있죠
substr(자를 문자열, 시작점, 개수) 이렇게 사용하면 됩니다.
바로 아래 사진을 보시죠
$hello라는 변수에서 3번 인덱스부터 2개를 자르라는 말입니다.
그래서 lo 값이 나오게 되는거죠
이렇게요!
그리고 밑에처럼 사용도 가능해요
$hw라는 변수 0번부터 5개에 howdy를 넣는겁니다
그래서 출력하면 위 사진처럼 나오죠
여기까지 문자열 다루는 내용이었습니다
'perl' 카테고리의 다른 글
펄(perl) 정렬(sort) 제대로 해보자(<=>를 이용) (0) | 2017.11.14 |
---|---|
펄(perl) continue(next, redo), break(last)문 (0) | 2017.11.13 |
펄(perl) 디렉토리 핸들링(디렉토리 변경, 파일 검색) (0) | 2017.11.13 |
펄 파일 입출력(perl fileio) 공부 (0) | 2017.10.31 |
펄 문자열 split(자르기), join(붙이기) (0) | 2017.10.30 |