이전에도 언급했지만
Web 단에서 프로그래밍을 하다보면
문자열들 사이에서
내가 원하는 것들을 쪽쪽 뽑아먹을 수 있어야합니다.
마치 모기처럼 말입니다.
뭐라고~ 이제 곧 우리를 찾아올 불청객인 모기!?
그렇습니다! 여러분은 코드를 작성하며 모기가 된다고 생각하셔야합니다~!!!
내가 모기가 될테니 내 피는 가져가지 마렴 모기야~!
(출처_ 외국 블로그)
죄송합니다...
아무튼 본론으로 들어가서!
php에서는 preg_match() 라고 하는 메서드가 존재합니다.
해당 메서드는
정규표현식을 인자로 받고 다른 인자로 받은 문자열에 매칭시켜
결과 값을 배열로 저장하게 됩니다.
PHP 메뉴얼에가서 확인해보겠습니다.
(출처_ PHP)
간략하게 설명해드린다면,
$pattern 이라는 탐색을 위한 문자열(정규 표현식)과
$subject 이라는 입력 문자열을 매칭(matching)시켜서
검색 결과를 $matches 에 채워넣습니다.
여기서 잘 보셔야할 점은 PHP 메뉴얼에도 나와있듯이
&$matches 라는 것입니다.
C / C++ 공부를 해보셨으면 아시겠지만,
그렇습니다. call by reference입니다.
주소를 통해 직접 접근하여 데이터를 수정하는 것이지요.
따라서 return과 별개로 결과값이 저장되는 것입니다.
return은 int형으로 0, 1, FALSE 이 셋으로 나뉜다고 하네요~
여기서 패턴에 매칭된 결과가 저장되어있는
$matches 를 조금 더 살펴보자면,
우선 배열입니다.
그리고, 0번째 즉, 첫 인덱스에는
전체 패턴에 대한 내용이 들어갑니다.
그리고 그 다음부터는
매치된 문자열의 시작 위치들을 저장하게 되는데요!
이를 매뉴얼에서는 서브 패턴이라고 하는군요~
한번 확인해보겠습니다.
1 2 3 4 5 6 | $sString = 'SAP_9999A_삽잡이'; preg_match('/SAP_[0-9]+(A|D|C|U)_(.*)/', $sString, $aMatches); echo "<pre>"; print_r($aMatches); echo "</pre>"; | cs |
자자...
'SAP_9999A_삽잡이' 라는 문자열을
'/SAP_[0-9]+(A|D|C|U)_(.*)/'
요렇게 생긴 정규 표현식와 패턴 매칭하여
매칭된 값들을 추출할 것입니다.
자 이렇게 추출된 값들을 확인할 수 있습니다.
정규 표현식도 알고~
문자열도 가지고 놀고~
익숙하게 사용할 수 있으면 아주 좋겠지요!?
굳~
'삽질의 현장 > - PHP' 카테고리의 다른 글
[삽잡이::php] 연관 배열 그리고 foreach( ) (0) | 2016.06.16 |
---|---|
[삽잡이::php] 한 객체만 사용한다! 싱글톤 패턴, getInstance( ) (0) | 2016.06.16 |
[삽잡이::php] 배열 안에 중복되는 것은 다 빼버려! array_uniqe( ) (0) | 2016.06.16 |
[삽잡이::php]글자를 쪼개보자! substr( ), explode( ) (0) | 2016.06.15 |
[삽잡이::php] php 설정을 해볼까? php.ini (0) | 2016.06.11 |