>  기사  >  백엔드 개발  >  "preg_match에서 알 수 없는 수정자 'g'" 오류가 발생하는 이유는 무엇입니까?

"preg_match에서 알 수 없는 수정자 'g'" 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-11 11:50:03410검색

Why Am I Getting the

"preg_match의 알 수 없는 수정자 'g'" 뒤에 숨은 미스터리 공개

preg_match 함수를 사용하여 PHP에서 정규식으로 작업할 때, "알 수 없는 수정자 'g'"라는 오류 메시지가 나타날 수 있습니다. 이 문제는 사용 중인 정규 표현식의 잘못된 구문과 관련이 있습니다.

문제

사용하려는 정규 표현식에 'g'가 포함되어 있습니다. preg_match 함수에서 인식되지 않는 수정자(예: /regex/gim)입니다. 일부 온라인 정규식 테스트 웹사이트에서는 'g' 수정자를 허용할 수 있지만 PHP는 이 맥락에서 이를 지원하지 않습니다.

해결책

이 문제를 해결하려면 대신 패턴의 여러 발생을 일치시키기 위한 'g' 수정자를 지원하는 preg_match_all 함수를 사용할 수 있습니다. 'g' 수정자는 함수가 전체 문자열을 반복하고 패턴의 모든 항목과 일치해야 함을 나타내는 전역 검색을 도입합니다.

대신:

preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....)

사용 방법:

preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)

preg_match_all 함수에서 'g' 수정자를 'm' 수정자로 사용하면 코드가 의도한 대로 작동하여 입력 문자열에서 지정된 이메일 주소 패턴의 여러 항목과 일치합니다.

위 내용은 "preg_match에서 알 수 없는 수정자 'g'" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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