preg_match()
함수의 사용법
preg_match()
함수는
주어진 정규 표현식 패턴을 사용하여 문자열 내에서 일치(match)하는 부분을 찾아내는 함수입니다.
- 일치하는 패턴을 문자열에서 처음으로 발견되면 검색을 중단하고
1
을 반환하고, - 일치하는 패턴을 찾지 못하면
0
을 반환합니다. - 에러가 발생한 경우
false
를 반환합니다. - 이메일 주소, 전화번호, URL과 같은 특정 패턴의 문자열을 검사할 때 주로 사용되며,
- 문자열에서 특정 패턴을 검색하거나 문자열에서 특정 형식의 데이터를 추출하는 데에도 사용됩니다.
문자열 내에서 정규 표현식을 사용하여 특정 패턴을 찾아 다른 문자열로 바꾸려면 preg_replace()
함수를 사용하세요.
preg_match()
함수의 형식은 다음과 같습니다.
구문
매개변수
$pattern |
필수. 검색할 정규 표현식 패턴입니다. |
---|---|
$subject |
필수. 검색 대상이 되는 문자열입니다. |
$matches |
필수. 정규 표현식 패턴에 일치하는 결과를 저장할 배열입니다.
이 배열은 함수 호출 후에 채워집니다. 참조 변수입니다.
|
$flags |
옵션. 추가적인 설정을 지정하는 플래그입니다.
다음과 같은 플래그를 사용할 수 있습니다.
|
$offset |
옵션. 검색을 시작할 문자열 내의 오프셋입니다. 0 부터 시작합니다. |
반환 값
일치하는 패턴을 문자열에서 처음으로 발견되면 검색을 중단하고 1
을 반환하고,
일치하는 패턴을 찾지 못하면 0
을 반환합니다.
에러가 발생한 경우 false
를 반환합니다.
이 함수와 유사한 preg_match_all()
함수는 주어진 정규 표현식 패턴을 사용하여 문자열 내에서 일치하는 모든 부분(match all)을 찾는 함수입니다.
예제
preg_match()
함수의 유용한 예제입니다.
숫자 추출
URL에서 도메인 추출
전화번호 추출
주의할 점
정규 표현식이 올바른지 확인해야 합니다. 잘못된 정규 표현식을 사용하면 예상치 못한 결과가 발생할 수 있습니다.
기본적으로 preg_match()
함수는 대소문자를 구분합니다. 만약 대소문자를 구분하지 않고 싶다면 정규 표현식에 /i
플래그를 추가하세요.
하나의 문자열이 다른 문자열에 포함되어 있는지만 확인하려면 이 함수보다 더 빠르게 수행하는 strpos()
함수를 사용하는 것이 좋습니다. strpos()
함수는 간단하고 빠르게 작동하며, 문자열의 포함 여부를 확인하는 간단한 작업에 적합합니다.
참고문헌
같이 보기
- PHP strlen() 함수 - 문자열 길이 확인
- PHP strpos() 함수 – 대소문자 구분해서 문자열에 특정 문자 포함 여부 확인
- PHP stripos() 함수 – 대소문자를 구분 없이 문자열에 특정 문자 포함 여부 확인
- PHP mb_strpos() 함수 – strpos()의 한글 지원 기능 제공
- PHP str_contains() 함수 – 대소문자 구분해서 문자열에 특정 문자 포함 여부 확인
- PHP substr() 함수 - 문자열을 잘라서 추출하기
- PHP mb_substr() 함수 – substr()의 한글 깨짐을 해결하기
- PHP mb_stripos() 함수 – stripos()의 한글 지원 기능 제공
- PHP preg_replace() 함수
- PHP preg_split() 함수 - 개념 정리 및 사용 예제
- PHP str_replace() 함수 – 문자열에서 특정 문자열을 다른 문자열로 바꾸는 함수
- PHP trim() 함수 - 문자열의 양쪽 끝에서 공백 또는 지정된 문자열 제거
- 자바스크립트 문자열 match() 함수 - 개념 정리 및 사용 예제