Знатокам регулярных выражений
s/=\s*(?!")/= "/g
Иди ботай.
ЗЫ а что неправильно :? написал первое, что в голову пришло ( как всегда
ЗЫ на то, что там написано тлько про один пробел и про "буква, символ, или #" я забил
Ты из xxx= "test" получишь xxx=""test", а это явно не то, что надо
ЗЫ родил уродца, хотя работает или нет хз
/(=\s+|=(?!\s?!")/= "/;
ЗЫ не пинать - я сонный и вообще просто любитель
ЗЗЫ удобочитаемость решает
торможу
$result = preg_replace('/(=(?>\s*?!")/','="',$str);
Это вообще возможно сделать одним preg_replace?
Ты можешь связно выразить, что тебе надо.
И вообще, в твоём предыдущем треде я тебе дал две ссылки. Не надо изобретать велосипед...
Если бы ты повнимательнее читал предыдущий тред, ты бы понял, для чего я изобретаю велосипед.
Читал. Всё равно не понимаю, чем тебе не угодил tidy...
Ну зачем ради того, что можно решить одной, максимум, двумя строками кода выкачивать исходники мегапроги и смотреть, как там все устроено?
решить одной, максимум, двумя строками кодаОптимист
хотя имхо - наиболее удобоваримый компромис...
основная тема в том, что сначала надо строку почистить, а потом правильно расставить кавычки...
Ну и как тут восстанавливать надо? Или что внутри кавычек не может <> встречаться?
<tag attr="val></tag><tag attr=val"></tag>
--------------------------------------------------------------------------------вот это точно дурацкий пост...
<tag attr="val></tag><tag attr=val"></tag>
--------------------------------------------------------------------------------Ну и как тут восстанавливать надо? Или что внутри кавычек не может <> встречаться?
а как ты себе представляешь по синтаксису языка <> внутри атрибутов тега ?
Если мое решение дурацкое - предложи свое...
А кавычки расставлять можно, ибо работают же атрибуты и без кавычек...
единственная проблема, это грамотное восприятие атрибутов с пробелами...
вот тут то и весь пожвох, но ИМХО это можно решить ...
<img src="image.gif" alt=">>>>>>>>>>>>>>>>> "image name" <<<<<<<<<<<<<">
не будет такая конструкция работать... кавычки закроются, ибо вложенность одинаковых кавычек не поддерживается.... а если разные кавычки, то нет проблем...
У меня в IE замечательно работает...
<html>
<body>
<a href = "url has < and >"> link </a>
</body>
</html>
а как ты себе представляешь по синтаксису языка <> внутри атрибутов тега ?А что в этом такого противоречивого? По логике вещей, между кавычками можно писать все кроме самих кавычек. Почему стандарты HTML/XML накладывают какие-то (по-твоему видимо очень естественные?) ограничения я не знаю.
Кстати вот тут разрешено > но запрещено <.
А вот тут наоборот.
Решилось не в 2 строки кода, но работает прекрасно.
Оставить комментарий
walder
В ПХП: в preg_replace - как написать регулярное выражение, кторое ищет символ = и когда находит, в случае, если после него идёт " или побел" не делал бы ничего, если любой символ, цифра, спецсимвол типа # - заменял на ="