2012-01-19 3 views
2

는 : 테두리, BGCOLOR 및 클래스 :정규식 부정 다음 문자열에서

<table border="1"><tr><td class=" m" bgcolor="#cccccc" style="bold" size="7" m="m "><span></span> </td><td class=" m" bgcolor="#cccccc" style="bold" size="7" m="m " align="center">NAMES </td><td class=" m" bgcolor="#cccccc" style="bold" size="7" m="m " colspan="13" align="center">AREAS </td></tr></table> 

나는 모든 다음 이외의 다른 특성을 제거하고 싶습니다.

^(?:border|class|bgcolor)\b))=".*?" 

이 작동하지 않습니다. 어떤 제안을 해주시겠습니까?

+0

그 대신 정규식을 사용할 수 있습니다. 그러나 보안 기능이 아닌 출력 변환에만 권장됩니다. 정규 표현식은 다양한 법적 직렬화를 처리하기에는 너무 많은 오버 헤드가됩니다. – mario

답변

2
preg_replace('/ (?!(border|class|bgcolor))[^=" ]+="[^"]*"/', '', $str); 

행동에 여기를 참조하십시오 http://regexr.com?2vp0m


please don't use a regex to parse HTML는 말했다!

+0

+1 좋은 답변 (그리고 RegExr에 대한 링크를 주셔서 감사합니다. 전에는 보지 못했습니다 - 유용 해 보입니다.) –

+1

@StuartGolodetz - 여기 정규 표현식의 모든 대답에 사용합니다. 실제로하는 일이 실제로 효과가 있다는 것을 보여주는 가장 쉬운 방법입니다! –

관련 문제