Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 감상
- great forest
- 레고
- 아이폰게임
- goblin sword
- 강추
- 아이러브니키
- 카이로소프트
- 일상
- 아이패드
- 모뉴먼트 밸리
- php
- 시사회
- 맛집
- Monument
- 영화
- 추천
- 핑크
- Pink
- 잡담
- Monument Valley
- 후기
- JavaScript
- 아이폰
- 유료
- 모뉴먼트
- 공략
- jQuery
- 게임
- 가사
Archives
- Today
- Total
잡담소장소
RegEx in PHP 본문
학부때 배웠던 정규표현식 ㄱ-;;
일태님이 간단한(!) 숙제를 내주셨다 -_ㅠ 키힝
블로그에 메모해놓긔!!
<PHP에서 쓰이는 정규표현식 관련 함수>
1. preg_filter & preg_replace 예제
<?php
$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
$pattern = array('/\d/', '/[a-z]/', '/[1a]/');
$replace = array('A:$0', 'B:$0', 'C:$0');
echo "preg_filter returns\n";
print_r(preg_filter($pattern, $replace, $subject));
echo "preg_replace returns\n";
print_r(preg_replace($pattern, $replace, $subject));
?>The above example will output:
preg_filter returns Array ( [0] => A:C:1 [1] => B:C:a [2] => A:2 [3] => B:b [4] => A:3 [7] => A:4 ) preg_replace returns Array ( [0] => A:C:1 [1] => B:C:a [2] => A:2 [3] => B:b [4] => A:3 [5] => A [6] => B [7] => A:4 )
이거 이해한다고 한동안 뚫어지게 쳐다본 난 바보였나?
이해하고나니까 간단한걸 ㅠ_ㅠ
preg_filter의 경우 subject의 값이 pattern과 일치할 경우에만 replace에 있는 값을 저장한다.
첫번째 '1'의 경우 \d와 [1a]에 속하므로 A:C:가 찍힌다
(그런데 $0는 무슨 의미지 T_T)
preg_replace의 경우 subject의 값이 pattern과 일치하지 않더라도 값을 저장한다.
A,B의 경우 어느 pattern에도 속하지 않아도 저장하는 것을 볼 수 있다 :)
2. preg_split 예제
<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>The above example will output:
Array ( [0] => Array ( [0] => hypertext [1] => 0 ) [1] => Array ( [0] => language [1] => 10 ) [2] => Array ( [0] => programming [1] => 19 ) )
preg_split는 패턴에 관련하여 문자열을 나누어 준다.
flag값을 PREG_SPLIT_OFFSET_CAPTURE으로 주어 각 문자열의 위치를 저장한 배열을 반환한다.
(flag값은 2개 더 있는데 해석하기 귀찮긔 -_-;;; 그닥 쓰지도 않을 것같다....
3. preg_match 예제
<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>will produce
Array ( [0] => Array ( [0] => def [1] => 0 ) )
preg_match는 pattern에 맞는 값을 반환한다.
위의 예제는 def로 시작하는 문자열이 있는지 검색하여 해당 값을 반환하도록 하는 것이다.
만약 substr($subject, 3) 이 아닌 $subject로 들어가면 null값을 반환한다.
flag값으로 PREG_OFFSET_CAPTURE를 주어 offset값을 함께 반환한다.
반응형
'Study ;3' 카테고리의 다른 글
효과적인 보고서 쓰기 (0) | 2010.10.28 |
---|---|
jQuery를 이용한 visibility (1) | 2010.10.06 |
jQuery를 이용한 테이블의 같은 값 찾기 - in PHP (0) | 2010.10.05 |
Encrypt & Decrypt in PHP (0) | 2010.09.17 |
정규식을 이용한 검색 및 파일 쓰기 in PHP (0) | 2010.09.03 |
Comments