Отрицание регулярных выражений на множестве строк - PullRequest
2 голосов
/ 19 января 2012

В следующей строке:

<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, bgcolor и class.

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

не получается.Любые предложения, пожалуйста?

1 Ответ

2 голосов
/ 19 января 2012
preg_replace('/ (?!(border|class|bgcolor))[^=" ]+="[^"]*"/', '', $str);

См. Здесь в действии: http://regexr.com? 2vp0m


При этом , пожалуйста, не используйте регулярное выражение для разбора HTML !!!

...