>백엔드 개발 >PHP 튜토리얼 >PHP에서 '경고: preg_replace(): 알 수 없는 수정자' 오류가 발생하는 이유는 무엇입니까?

PHP에서 '경고: preg_replace(): 알 수 없는 수정자' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-25 12:20:32956검색

Why Am I Getting the

경고: preg_replace(): 알 수 없는 수정자

오류 이해

오류 "경고: preg_replace( ): 알 수 없는 수정자'는 일반적으로 일반 프로그램에서 잘못된 수정자를 지정할 때 발생합니다. 표현 패턴. 정규식은 구분 기호로 묶인 패턴과 수정자로 구성됩니다.

오류 원인

이 오류에는 두 가지 일반적인 이유가 있습니다.

  1. 구분 기호 누락: 정규식 패턴이 적절하게 포함되지 않았습니다. delimiters.
  2. 이스케이프되지 않은 구분 기호: 백슬래시()를 사용하여 이스케이프하지 않고 패턴 내부의 구분 기호 문자를 사용했습니다.

해결 방법

1. 구분 기호 추가:

구분 기호를 제공하지 않은 경우 /, #, ~ 또는 []와 같이 유효한 구분 기호 사이에 패턴을 넣으세요.

예 :

preg_replace("/<div[^>]*><ul[^>]*>/", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)));

2. 이스케이프 구분 기호:

패턴에 구분 문자가 포함된 경우 백슬래시를 사용하여 이스케이프하세요.

예:

preg_replace("/foo[^/]+bar/i", "", "foo/bar");

3. 다른 구분 기호 사용:

이스케이프 구분 기호가 번거롭다면 #과 같이 패턴에 표시되지 않는 구분 기호를 사용하는 것이 좋습니다.

예:

preg_replace("#<div[^>]*><ul[^>]*>#", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)));

추가 리소스

  • [PHP 정규식 구분 기호](https://www.php.net/manual/en/reference.pcre.pattern.syntax.php)
  • [어떻게 할 수 있나요? PHP에서 ereg 표현식을 preg로 변환합니까? (구분 기호 누락)](https://stackoverflow.com/questions/2846236/how-can-i-convert-ereg-expressions-to-preg-in-php-missing-delimiters)
  • [알 수 없음 …의 수정자 '/' 그것은 무엇입니까? (preg_quote() 사용 시)](https://stackoverflow.com/questions/426482/unknown-modifier-in-what-is-it-on-using-preg-quote)

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

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