200 of 410 menu

preg_match_all 함수

preg_match_all 함수는 문자열에서 패턴에 대한 전역 검색을 수행합니다. 첫 번째 매개변수에는 정규 표현식이, 두 번째 매개변수에는 검색 대상 문자열이, 세 번째 매개변수에는 결과를 저장할 배열이 전달됩니다. 네 번째 선택적 매개변수는 반환되는 구조의 유형을 결정하고, 다섯 번째 선택적 매개변수는 검색 시작 오프셋입니다.

구문

preg_match_all(pattern, subject, matches, [flags], [offset]);

플래그

네 번째 매개변수가 가질 수 있는 값들을 살펴보겠습니다:

매개변수 설명
PREG_PATTERN_ORDER 기본 모드입니다. 결과는 캡처 그룹별로 그룹화됩니다 - 배열의 0번째 요소는 0번 캡처 그룹을 포함하고, 배열의 1번째 요소는 1번 캡처 그룹을 포함하는 식입니다.
PREG_SET_ORDER 결과는 일치 항목별로 그룹화됩니다 - 배열의 각 요소는 발견된 캡처 그룹을 담은 배열을 포함합니다.
PREG_OFFSET_CAPTURE 각 일치 항목에 대해 문자열 내 위치가 반환됩니다. 각 결과는 0번 요소가 일치 문자열을, 1번 요소가 그 오프셋을 담은 배열입니다.
PREG_UNMATCHED_AS_NULL 일치하지 않는 캡처 그룹은 빈 문자열 대신 null로 반환됩니다.

예제

문자열에서 모든 숫자를 찾아봅시다:

<?php $str = 'abc 123 def 456'; preg_match_all('/\d+/', $str, $res); var_dump($res[0]); ?>

코드 실행 결과:

['123', '456']

예제

문자열에서 모든 문자 'a'를 찾아봅시다:

<?php $str = 'banana'; preg_match_all('/a/', $str, $res); var_dump($res[0]); ?>

코드 실행 결과:

['a', 'a', 'a']

예제

문자열에서 모든 타임스탬프와 그 구성 요소를 추출해봅시다:

<?php $time = '12:01:02 13:03:04 14:05:06'; preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res); var_dump($res); ?>

코드 실행 결과:

[ 0 => ['12:01:02', '13:03:04', '14:05:06'], 1 => ['12', '13', '14'], 2 => ['01', '03', '05'], 3 => ['02', '04', '06'] ]

예제

이번에는 PREG_SET_ORDER 플래그를 사용하여 일치 항목별로 그룹화해봅시다:

<?php $time = '12:01:02 13:03:04 14:05:06'; preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res, PREG_SET_ORDER); var_dump($res); ?>

코드 실행 결과:

[ 0 => '12:01:02', 1 => '12', 2 => '01', 3 => '02' ], [ 0 => '13:03:04', 1 => '13', 2 => '03', 3 => '04' ], [ 0 => '14:05:06', 1 => '14', 2 => '05', 3 => '06' ]

함께 보기

  • 정규 표현식과의 첫 번째 일치 항목을 검색하는 함수 preg_match
  • 정규 표현식에 의한 검색 및 치환을 수행하는 함수 preg_replace
한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부