>백엔드 개발 >PHP 튜토리얼 >PHP - PCRE와 POSIX 정규 표현식의 차이점

PHP - PCRE와 POSIX 정규 표현식의 차이점

伊谢尔伦
伊谢尔伦원래의
2016-11-21 17:06:291595검색

PHP 5.3.0부터 POSIX 정규식 확장은 더 이상 사용되지 않습니다. POSIX 정규식과 PCRE 정규식 사이에는 몇 가지 차이점이 있으며, 이 문서에는 PCRE로 전환할 때 알아야 할 가장 중요한 차이점이 나열되어 있습니다.

PCRE 함수를 사용하려면 패턴을 구분 기호로 닫아야 합니다.

POSIX와 달리 PCRE 확장에는 대소문자를 구분하는 전용 기능이 없습니다. 대신 지원에서는 i(PCRE_CASELESS) 모드 수정자를 사용하여 동일한 작업을 수행합니다. 다른 패턴 수정자를 사용하여 일치 전략을 변경할 수도 있습니다.

POSIX 함수는 왼쪽부터 가장 긴 일치 항목을 찾지만 PCRE는 첫 번째 적법한 일치 항목 이후에 중지됩니다. 문자열이 일치하지 않으면 별 차이가 없지만 일치하면 결과와 속도에 차이가 발생합니다. 이러한 차이점을 설명하려면 다음 예를 고려하십시오(Jeffrey Friedl의 책 Mastering Regular Expressions에서 발췌). one(self)?(selfsufficient)? 패턴을 사용하여 oneselfsufficient 문자열을 일치시키면 PCRE는 oneself와 일치하지만 POSIX를 사용하면 결과는 전체 문자열 oneselfsufficient가 됩니다. 두 부분 문자열 모두 원래 문자열과 일치하지만 POSIX는 가장 긴 문자열을 결과로 처리합니다.

함수 비교표

POSIX

PCRE

ereg_replace() preg_replace()

ereg() preg_match()

eregi_replace() preg_replace()

ereg() preg_match()

split() preg_split()

spliti() preg_split()

sql_regcase() 해당 함수 없음


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.