English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
preg_match_all 함수는 전체 정규 표현식 일치를 수행합니다.
int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
subject에서 pattern에 일치하는 모든 일치 결과를 검색하고, flag로 지정된 순서로 matches에 출력합니다.
첫 번째 일치가 발견된 후, 서브시퀀스는 마지막 일치 위치에서 다시 검색합니다.
파라미터 설명:
$pattern: 검색할 패턴, 문자열 형식.
$subject: 입력 문자열.
$matches: 다차원 배열, 모든 일치 결과를 출력 매개변수로 사용합니다. 배열 정렬은 flags로 지정됩니다.
$flags: 아래 표시와 함께 사용할 수 있습니다(주의: PREG_PATTERN_ORDER와 PREG_SET_ORDER는 동시에 사용할 수 없습니다):
PREG_PATTERN_ORDER: 결과는 $matches[0]이 전체 패턴의 모든 일치를 저장합니다. $matches[1] 첫 번째 서브그룹의 모든 일치를 저장합니다. 이를 통해 계속 합니다.
PREG_SET_ORDER: 결과는 $matches[0]이 첫 번째 일치로 얻은 모든 일치(서브그룹 포함)를 포함합니다. $matches[1이는 두 번째로 일치하는 모든 일치(서브그룹 포함)를 포함하는 배열입니다. 이를 통해 계속 합니다.
PREG_OFFSET_CAPTURE: 이 표시가 전달되면, 매칭이 발견될 때마다 목표 문자열에 대한 상대적인 이동량이 증가합니다.
offset: 일반적으로, 탐색에서 목표 문자열의 시작 위치에서 시작합니다. 선택 사항 offset은 목표 문자열에서 지정된 위치에서 검색을 시작하는 데 사용됩니다(단위는 바이트입니다).
전체 매칭 횟수를 반환합니다(가능한 경우 0), 또는 오류가 발생하면 FALSE를 반환합니다.
<?php
$userinfo = "Name: <b>PHP</b> <br> 제목: <b>프로그래밍 언어</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print_r($pat_array[0]);
?>
출력 결과는 다음과 같습니다:
Array ( [0] => <b>PHP</b> [1] => <b>프로그래밍 언어</b> )
<?php
//\",2이는 pcre가 정규 표현식의 두 번째 괄호(여기서는 ([\w+))
//좌표된 결과. 여기서 두 개의 역문자는 여기서 양쪽 단락을 사용했기 때문입니다.
$html = "<b>강조 텍스트</b><a href=howdy.html>클릭하세요</a>";
preg_match_all("/(<([\w+)[^>]*>)(.*/\",2>)/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
echo "matched: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[2] . "\n";
echo "part 3: " . $val[3] . "\n";
echo "part 4: " . $val[4]. "\n\n";
}
?>
출력 결과는 다음과 같습니다:
matched: <b>강조 텍스트</b> part 1: <b> part 2: b part 3: 강조 텍스트 part 4: </b> matched: <a href=howdy.html>클릭하세요</a> part 1: <a href=howdy.html> part 2: a part 3: 클릭하세요 part 4: </a>