preg_match() 함수는 정규식 일치를 수행하는 PHP 내장 함수입니다. 이 함수는 문자열에서 패턴을 검색하고, 패턴이 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
일반적으로 $subject 문자열 매개변수의 시작 부분부터 검색이 시작됩니다. 선택적 매개변수 $offset은 지정된 위치에서 검색을 시작하는 데 사용됩니다.
통사론
int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset)
참고: $offset은 검색을 시작할 위치를 지정하는 선택적 매개변수입니다.
매개변수
이 함수는 아래에 설명된 5개의 매개변수를 허용합니다.
무늬
문자열 유형 매개변수입니다. 이 매개변수는 검색할 패턴을 문자열로 보유합니다.
주제
이 매개변수는 패턴을 검색하는 입력 문자열을 보유합니다.
성냥
match 매개변수가 제공되면 검색 결과가 포함됩니다.
일치[0] - 전체 패턴과 일치하는 텍스트를 보관합니다.
일치[1] - 괄호로 묶인 첫 번째 하위 패턴과 일치하는 텍스트가 포함됩니다.
깃발
jdbc jdbc
플래그에는 아래와 같은 플래그가 있을 수 있습니다.
오프셋
기본적으로 검색은 $subject 매개변수의 시작 부분부터 시작됩니다. offset 매개변수는 검색이 시작될 위치를 지정하는 데 사용됩니다. 선택적 매개변수입니다.
반환 유형
preg_match() 함수는 패턴이 일치하면 true를 반환하고 그렇지 않으면 false를 반환합니다.
참고: 한 문자열이 다른 문자열에 포함되어 있는지 여부만 확인하려면 preg_match() 함수를 사용하지 마세요. strpos() 함수를 사용하면 더 빠릅니다.
예
<?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?>
산출:
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
더 잘 이해하기 위해 위의 출력을 아래와 같이 볼 수 있습니다.
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
예: 대소문자를 구분하지 않는 검색
<?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>'; print_r($matches); } else { echo 'Pattern not matched in string.'; } ?>
산출:
자바 대체 문자열
Pattern matched in string. Array ( [0] => JTP )
예: 단어 경계 사용()
<?php /* The indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>'; } else { echo 'A match was not found. <br>'; } if (preg_match('/web/i', 'PHP is a website scripting language.')) { echo 'A match was found.'; } else { echo 'A match was not found.'; } ?>
산출:
A match was found. A match was not found.
예: URL에서 도메인 이름 가져오기
산출:
Domain name is: javatpoint.com
Regex(정규식) 구문
[알파벳] | 단일 문자(a, b 또는 c)와 일치합니다. |
[^abc] | a, b, c를 제외한 모든 단일 문자와 일치합니다. |
[a-z] | a-z 범위 내의 모든 단일 문자와 일치합니다. |
[a-zA-Z] | a-z 또는 A-Z 범위 내의 모든 단일 문자 |
^ | 줄의 시작 |
$ | 줄 끝 |
ㅏ | 문자열의 시작 |
와 함께 | 문자열의 끝 |
. | 임의의 단일 문자 |
에스 | 모든 공백 문자 |
에스 | 공백이 아닌 문자 |
디 | 임의의 숫자 |
디 | 숫자가 아닌 모든 것 |
안에 | 모든 단어 문자(문자, 숫자, 밑줄) |
안에 | 단어가 아닌 문자 |
비 | 단어 경계 검사기 |
/?/ | 정규식을 시작하고 끝냅니다. |
(?) | 괄호() 안의 내용을 모두 캡처합니다. |
(a|b) | a 또는 b |
ㅏ? | 0 또는 다음 중 하나 |
ㅏ* | 0개 이상의 |
에이+ | 다음 중 하나 이상 |
에{3} | 정확히 3개 |
에{3,} | 3개 이상 |
에{3,6} | 3~6 사이 |
나 | 대소문자를 구분하지 않는 검사 |
중 | 도트 매치 개행 만들기 |
엑스 | 정규식에서 공백을 무시합니다. |