Вырезать регуляркой
Помогите написать регулярку. Нужно вырезать из переменной $text все значения ширины типа ' width="ЧЮБОЕ_ЗНАЧЕНИЕ"'. Как я понимаю регуляркой это возможно?
|
alert( ('dsfsdfds width="ЧЮБОЕ_ЗНАЧЕНИЕ" dsfsd width="5px"fds' .match(/ width="[^"]*"/g) || []).join('\n') ); |
Riim,
Спасибо большое! Только мне надо было для PHP. Я модифицировал вот так: $text = preg_replace("' width=\".*?\"'si", '',$text); вроде тоже правильно? |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
для более сложных задач можно парсить html, для этого есть следующие вещи: http://ua.php.net/manual/en/book.dom.php , http://blog.fedecarg.com/2008/08/07/...-jquery-style/ , или можно просто погуглить на тему "html parser php" p.s. а зачем понадобилось из строки вырезать ширину? Откуда эта строка берется? |
Цитата:
|
Riim,
И все же я не понял принципиальной разницы :( Если квантификатор "жадный", то движок начинает "набирать" на него совпадение, набирает-набирает, пока не упрется, потом идет дальше. Если в процессе он видит, что совпадение невозможно в таком варианте, он "отпускает" один символ от жадного кв-ра и снова топает по проторенному пути. Если квантификатор "нежадный", то движок хватает первое попавшееся совпадение и радостный топает дальше. Если не может найти совпадение -- возвращается, пробует добавить символ, и потом топать дальше. Где принципиальная разница? |
Цитата:
Вот такая строка: '0123456789012345678901234567890123456789012345678 9012345678901234567890123456789mail@mail.ru' С жадностью: /[^a-z]*[^0-9]+/ Здесь что бы регулярке сдвинуться на один символ вправо нужно сделать всего одно действие: примерить этот символ к [^a-z] Без жадности: /[^a-z]*?[^0-9]+/ Что бы сдвинуться на один символ вправо нужно сначала примерить символ к [^0-9] и если не подходит, то тогда уже примерять к [^a-z]. Т. е. два действия. Пока тормозит всего в 2 раза сильней, и теперь заменяем в обоих случаях [^0-9]+ на что-нибудь посложней, вроде того: RegExp.eMail = '[0-9a-z][.\\-\\w]{20}@(?:[0-9a-z][\\-0-9a-z]*[0-9a-z]\\.)+[a-z]{2,6}'; Регулярка с жадностью сначала вберет в себя все цифры и далее !один! раз примерит RegExp.eMail к 'mail@mail.ru' . Регулярка без жадности будет примерять RegExp.eMail много-много раз и это примирение уже довольно тяжелое. зы: если кто-нибудь попросит объяснить сначала, то мне придется сделать себе харакири. |
Часовой пояс GMT +3, время: 00:27. |