2010-07-21 6 views
0

preg_replace를 사용하여 태그를 일치 시키려고합니다. <video[^>]*>(.*?)</video>html 태그를 preg_replace로 바꾸기

하지만 서버 경고 받고 있어요 : 사용되는 정규식 이유에 Message: preg_replace() [function.preg-replace]: Unknown modifier ']'

모든 단서를?

또한 어떻게 [비디오] 태그와 일치시킬 수 있도록 정규 표현식을 수정할 수 있습니까?

감사합니다.

+2

HTML을 정규식으로 구문 분석해서는 안됩니다. 이유에 대한 자세한 내용은이 질문에 대한 답변을 참조하십시오. http://stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not BBCode 관련 내용은 다음을 사용할 수 있습니다. PECL에 액세스 할 수있는 경우 BBCode 확장. http://www.php.net/manual/en/book.bbcode.php – Shabbyrobe

+0

감사합니다. 관련 문서가별로 없지만 주위를 둘러 보겠습니다. – Nacho

답변

2

preg_ 함수에서 필요에 따라 정규 표현식을 구분해야합니다. 보통은 /regex/으로 작성하지만 구분 기호는 사용합니다.

정규식에 /이 포함되어 있으므로이를 피하기 위해 %으로갑니다.

%<video[^>]*>(.*?)</video>% 

물론 정규식을 통해 HTML을 어지럽히는 데주의해야합니다. 문제가있을 것입니다. 언제나처럼.

대신 [video]을 원하는 경우에, 다만 [] 모든 <> 교체 -하지만 [] 때문에, 그들을 탈출을 기억 정규 표현식에 중요하다!

%\[video[^\]]*\](.*?)\[/video\]% 
+0

감사합니다 억! html에 대해서 .. 알아,하지만 비디오 코드를 대신 할 수있어. 너무 문제가되어서는 안됩니다. – Nacho

+0

@Ignacio - 기꺼이 도와 드리겠습니다. :) 알고 계실 것입니다.하지만 답변 옆에있는 체크 표시를 클릭하면 기억하게됩니다. D 감사합니다! – Matchu