php preg_match_all 문자열에서 특정 문자열 추출 후 배열로 리턴하기
preg_match_all — 전역 정규 표현식 매치를 수행합니다
int preg_match_all ( string $pattern , string $subject , array &$matches [, int $flags [, int $offset ]] )
pattern : 탐색할 문자열 패턴.
subject : 입력 문자열.
matches : 모든 매치의 배열. flags에 따라서는, 다차원 배열.
<?php
// \\2는 역참조의 예제입니다. 이는 PCRE가 정규표현식 자체의
// 두번째 괄호를 가르키며, 이 경우에는 ([\w]+)입니다.
// 문자열이 더블 쿼터(")안에 있을 경우에는 백슬래시가 하나 더 필요합니다.
$html = "<b>bold text</b><a href=howdy.html>click me</a>";
preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches);
foreach ($matches as $val) {
echo "matched: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[3] . "\n";
echo "part 3: " . $val[4] . "\n\n";
}
?>
출력:
matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>
matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: click me
part 3: </a>
리턴값으로는 매칭된 개수를 리턴하게 되고
matches 변수에 매칭된 문자열들이 배열로 저장되게 됩니다.
'IT > php' 카테고리의 다른 글
php asort — 배열 정렬 인덱스 상관 관계를 유지 (0) | 2016.11.01 |
---|---|
php array_unique 배열 중복값 제거 (0) | 2016.11.01 |
php preg_match 파싱 문자열 패턴 (0) | 2016.10.24 |
php preg_grep 배열 패턴 (0) | 2016.10.24 |
php array_chunk — 배열을 조각으로 나누기 (0) | 2016.10.20 |