PHP의 mb_eregi() 함수는 멀티바이트(multibyte) 문자열을 지원하면서 대소문자를 구분하지 않고 정규 표현식 패턴을 검색하는 함수입니다. 함수 이름의 'i'는 'ignore case(대소문자 무시)'를 의미하며, 한글·일본어·중국어처럼 멀티바이트 인코딩이 필요한 문자열에서도 안정적으로 정규식 매칭을 수행할 수 있다는 점이 큰 장점입니다.
문법(Syntax)
bool mb_eregi( string $pattern, string $string, array &$matches = null )
기본적인 사용 예는 다음과 같습니다.
mb_eregi("or", "Hello World");
// "Hello World" 문자열에서 "or" 패턴을
// 대소문자 구분 없이 검색합니다.
매개변수(Parameters)
mb_eregi() 함수는 다음 세 가지 매개변수를 받습니다.
pattern – 주어진 문자열에서 찾고자 하는 정규 표현식 패턴입니다.
string – 패턴을 검색할 대상이 되는 입력 문자열입니다.
matches – 선택적(optional) 매개변수입니다. 패턴이 문자열에서 발견되면 매칭된 부분 문자열들이 이 배열의 요소로 저장됩니다. 만약 매칭 결과가 없다면 빈 배열이 반환됩니다.
반환 값(Return Values)
이 함수는 문자열 안에 해당 패턴이 존재하는지 여부를 확인합니다. 패턴이 매칭되면 정수 1을 반환하고, 매칭되지 않으면 false를 반환합니다.
예제(Example)
<?php
// UTF-8 인코딩 설정
$encoding = mb_regex_encoding("UTF-8");
// 대소문자가 다른 패턴 "OR"으로 검색해도 매칭됨
$integer = mb_eregi("OR", "Hello World");
// 출력
var_dump($encoding);
print_r($integer);
?>
실행 결과(Output)
bool(true) 1
위 예제에서 패턴은 대문자 "OR"이지만 실제 문자열에는 소문자 "or"가 포함되어 있습니다. mb_eregi()는 대소문자를 구분하지 않기 때문에 정상적으로 매칭되어 1을 반환한 것을 확인할 수 있습니다. 만약 대소문자를 엄격하게 구분해야 한다면 mb_ereg() 함수를 사용하는 것이 좋습니다.