![]() |
|
Модераторы: ginnie |
![]()
|
|
| Evghenusi |
|
||||||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: нет Всего: 15 |
Ребята, может это вам под силу?
как оставить только один атрибут (colspan|rowspan) знаю, а как оба нет исходный текст
получить
Эта задачка задавалась в разделе php, но до сих пор не даёт мне покоя. Кстати вот мой вариант, наверно кривоват, но всё что смог родить:
неужели нельзя решить одним РВ? Это сообщение отредактировал(а) Evghenusi - 3.9.2011, 04:13 |
||||||
|
|||||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
Именно для этой последовательности сгодится такой вариант
|
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: нет Всего: 15 |
А если имеется html код в котором надо найти только теги <td> и очистить их, тогда как?
И если не трудно объясните пожалуйста работу вашего РВ? слово перед которым нет (colspan|rowspan)="всё кроме кавычки" ? |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
|
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: нет Всего: 15 |
Огромное спасибо, то что надо!
Буду несказанно рад, если ещё и объясните. |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
alezzz, не работает
Имеем: <td rowspan="3" style="height: 50%">3</td> Ожидалось: <td rowspan="3">3</td> |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
да, как всегда не все варианты опробовал, вобщем одним выражением сложно, легче вытянуть содержимое <td ... > и уже его чистить чем весь html-документ
|
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: нет Всего: 15 |
||||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
Не стоит отчаиваться.
В предыдущем варианте мне мешал fixed-regexp в просмотре назад, а что если отталкиваться не от начинающего тега, а от завершающего? вобщем если внутри <td > </td> нет других тегов, то можно такое попробовать:
|
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: нет Всего: 15 |
вроде работает, хотя в отличии от Pfailed, я мог снова что-то упустить)
|
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
Ну тут сам alezzz сказал в чём проблема его последнего варианта.
В обычном html вероятность нахождения тега внутри <td> весьма велика. Хотя с другой стороны нормальные люди html регулярками не парсят Мне стало интересно можно ли после осуществленной подстановки вернуть позицию в строке на начало этой подстановки. Если найти возможность это сделать, то задача бы легко решилась. Я задал вопрос по этому поводу на perlmonks |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
И всё таки оно существует, решение этой задачи.
Не идеальное, но вроде как лучшее из представленных. |
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: нет Всего: 15 |
а зачем сверхжадный квантификатор?
|
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
Потому что мы знаем, что если захватили слово, но там colspan или rowspan, то нет смысла уменьшать захваченное и пытаться найти "=" после этого.
|
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
Сегодня регулярка немного изменилась
Кстати, в php поддерживаются \K и \G? |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |