| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Регулярные выражения > обойти абзац |
| Автор: gcc 17.9.2010, 02:41 | ||||||||
есть регулярнео выражение для замены, точнее для обработки картинок:
есть участок текста, где данное рег. выр. не работает, по причине что стоит абзац...!!
тут есть много текста, по этому просто удалить обзац не получится...! как тут написать это рег.выр. чтобы была замена, как обойти обзац (перенос строки) ?? я пробовал так:
но отвичет:
что с этим делать я не понял... |
| Автор: ming 17.9.2010, 07:57 | ||||
| модификатор /e предписывает движку регэкспов выполнить код, указанный в кач-ве второго аргумента оператора s/// Но строка
валидным perl-кодом не является, поэтому либо убирайте /e, либо заключайте в аргумент в кавычки
/x тоже лишний, т.к. рег выражение может быть записано в одну строку и без использования разделительных пробельных символов В вашем случае нужно было всего лишь прибавить модификатор /s PS: Подозреваю, что (.*.) можно заменить на (.+) ... или что это за конструкция такая? |
| Автор: gcc 17.9.2010, 14:28 | ||||||
| не со всем понял, что-то... есть регулряное выражение:
для обработки участка в тексте:
НО как только в тексте попадается такой участок:
то это рег.выр . не работает, не обрабатывает!! пробовал 100 раз, как я и написал в первом посте, оно почему-то не хочет обрабатывать там где обзац стоит! как сделать, чтобы оно работало?? |
| Автор: ming 17.9.2010, 17:09 | ||
|
| Автор: gcc 17.9.2010, 17:21 |
| ming, добавил модификатор s, теперь вообще не заменяет, не работает... |
| Автор: ming 17.9.2010, 20:17 | ||||||
| а всё, разобрался. тут виноваты жадные квантификаторы вот тут (src="(.*.)") захватывается не
как вы надеялись, а
вот так у меня заработало ( .* -> .*? ):
|
| Автор: gcc 17.9.2010, 20:32 |
| понятно, у меня как раз не давно такая же проблема была, я забыл что они не работают нормально.. |
| Автор: Logo 17.9.2010, 23:22 |
| Все работает нормально, разберитесь просто. |
| Автор: gcc 1.10.2010, 08:35 | ||||
подскажите, почему такое рег. выр.
не хочет работать для такого участка
в тексте? |
| Автор: Logo 1.10.2010, 09:39 |
| В реге />, в тексте >. [a-z0-9\.]+ сдесь не разрешен обратый слеш, а в тексте он есть. |