정규 표현식 PCRE 함수 (및 POSIX 함수와 차이)
4 개 중 1 페이지
우리는 있었다 이미 암시 블로그의 페이지를 통해 최근 있지만 제가 개발자 수천을 위해 관심이있을 것으로 생각되는 주제를 조사하고자 - 나같은 - 매일 자신의 웹 애플 리케이션을 개발하는데 사용할수 있습니다.
사실, 정규 표현식의 잠재력을 이용하려는 개발자는 더 이상 POSIX 함수를 사용합니다 없음 ((ereg을 이해하는) 가족) 수 있지만, PHP의 버전 5.3과 함께 시작하면, 필요성, 기능 PCRE (Perl 호환 정규를 사용해야합니다 표현식)과 같은 예를 들어, preg_match () .
PHP에 통합 PCRE 함수는 전형적인 펄 정규 표현의 구문을 사용할 수 있도록 POSIX 함수와는 약간 다릅니다입니다 (더 정확하게, 현재의 구현은 펄 5.005의 구문을 지원합니다.) PCRE의 구문에 대한 자세한 내용은 상담이 가능 수동 공식 웹사이트 PCRE.org에서 사용할 수 있습니다.
비교 : preg_match ()
당신은 문자열과 패턴 (정규 표현식의 형태로 작성한 패턴) 사실, ereg ()와 eregi ()를 대체하는) (preg_match 필요합니다 비교를하고자합니다.
preg_match ()를 사용하여 일반적인 사용에 매우 간단하다 : 당신이 함수에게 패턴 및 확인 문자열을 전달합니다. 패턴이 만족되면, 함수는 1을 반환하면 0 (또는 오류가있는 경우 FALSE).
ereg ()는 복잡한 일은 아니라는 사실에서 마이 그 레이션. 일부 작은 조치는 패턴의 수립에 충분한 것입니다.
자, 예를 들어 보자 :
<? PHP
IF (preg_match ( '/ mrwebmaster / I', '만세 MrWebmaster!')) {
메아리 "발견";
아니면 {}
"찾을 수 없음"반향;
}
?>
어느 것이 동일합니다 :
<? PHP
IF (eregi ( 'mrwebmaster', '만세 MrWebmaster!')) {
메아리 "발견";
아니면 {}
"찾을 수 없음"반향;
}
?>
preg_match ()를 사용하여 우리의 간단한 예제에서는 패턴 문자열로 사용
/ Mrwebmaster I /우리는 구문을 참조하십시오
- /이 ... / - 시작과 표현의 끝을 구분;
- mrwebmaster는 - 당신이 두 번째 인수로 텍스트에 존재를 확인하고자 간단한 문자열이다;
- 나 - "I"마감 후 기호는 검색 (이것은 eregi ()를 사용했습니다대로) 대소문자를 구분하면 안된다고 나타냅니다. 기술적으로이 "전"에 수정자입니다 이 페이지 PCRE의 구문에서 허용 수정자의 전체 목록은.
ereg와 차이 ()
보시다시피 ereg ()와 차이가 매우 많은 않습니다, 그럼 간단히 그들을 요약하자 :
- 구분 기호의 사용 / ... / (실제로는 구분 기호로 다른 문자를 사용할 수 있지만 슬래시는 일반적인 선택이다);
- 대소문자를 구별하지 버전 (eregi ()) 닫는 구분자 뒤에 "i"는의 사용으로 대체됩니다;
- 패턴에서 / 문자의 존재는 기호와 혼동하지 마세요 위해 (당신이 구분 기호로 감원하는 데 사용되는 경우) 탈출 (\ /)가 필요합니다;
- ASCII 문자의 관리에 몇 가지 한계 차이 (PCRE 숫자 ASCII 문자 수락 달리 POSIX 함수가 있습니다 예를 숫자 10은 새로운 라인과 캐리지 리턴 13에 해당하는, PCRE 함수 vicevera. 10 단독 10 번은)를 나타냅니다.
- 함수 ereg ()는 단지 세 매개 변수 (패턴, 텍스트는 확인하고, 선택적으로, 배열은 결과를 잡고) 인정과 preg_match ()는 시인 오 (처음 두가 우리가 이미 보았다, 필요, 다른 세는 옵션입니다 );
우리가 아직 (일부) 정규 표현식의 구문에 대한 올바른 이론적 설명을 고려해야 위의 기초 (그리고 언급되었을 차이)에서에서 찾을 수 있습니다 이 페이지 이전 POSIX 함수에 헌신 기사 "PHP에서 정규 표현식"의 .






