"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 중국어 웹사이트의 기타 관련 기사를 참조하세요!