![]() |
Модераторы: ginnie |
![]() ![]() ![]() |
|
barbiturat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
Встала задача найти все файлы, в которых есть теги <span>, содержащие внутри себя теги <a>.
Можно ли такое сделать при помощи regexp'ов, или нужно все перелопачивать ручками? Вот пример. Можно ли здесь найти только <span>, содержащие внутри себя теги <a>?
Да, я не сказал, что выражение нужно для того, что б забить в строку поиска в любом редакторе, поддерживающем поиск по regexp (например, Eclipse или Idea) Это сообщение отредактировал(а) barbiturat - 24.12.2009, 18:51 |
|||
|
||||
DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
можно!
-------------------- |
|||
|
||||
barbiturat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
DEER, думаю, что ты ошибаешься. Мы сегодня пол дня над этой головоломкой бились. Решения через RegExp, похоже, нету.
Это сообщение отредактировал(а) barbiturat - 24.12.2009, 20:47 |
|||
|
||||
DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
можно увольнять отдел ваш
![]()
-------------------- |
|||
|
||||
barbiturat |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
DEER, не подходит :(
Под твой шаблон
попадает целиком следующий блок:
Как видим, во первых, тут сразу несколько спанов, а во вторых, в одном из них вообще нет тега <a> |
||||
|
|||||
DEER |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
вы запускали, или теоритезируете?
вот лог запуска того текста, что я привел
код 1.pl полностью
как говориться, непиздите ![]() Это сообщение отредактировал(а) DEER - 24.12.2009, 22:24 -------------------- |
||||
|
|||||
barbiturat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
Я писал:
Т.е., я ищу не скрипт, а чисто выражение regexp, которое можно забить в любом редакторе, поддерживающем perl-совместимый синтаксис (Eclipse, Aptana, Idea и любых подобных) |
|||
|
||||
DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
тогда изучайте регэкспы именно в данном IDE: Eclipse и Idea, это ж java
нафиг сюда постить? запостите в форуме про java! Вы спросили в форуме про перл. я вам дал перл код, который это делает. Всё ништяк! Это сообщение отредактировал(а) DEER - 24.12.2009, 22:45 -------------------- |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
DEER, замените в своем коде $1 на $& и попробуйте.
barbiturat, конечно, в полном объеме на регэспах решить вашу задачу очень сложно (например, по-хорошему нужно учитывать, что simple text может быть таким: "<a href='#'>text2</a>"). Но упрощенное решение тем не менее возможно (редактор дожен поддерживать расширенный синтаксис регулярных выражений). В моем редакторе (nedit) так: (?n\<span(?:.(?!\>))*\>(?:.(?!\</span\>))*\<a.*?\>.*?\</a\>.*?\</span\>) Здесь из-за особенностей реализации регэкспов в нем все < и > заэкранированы, а (?n) равносильно модификатору /s. |
|||
|
||||
barbiturat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.12.2009 Репутация: нет Всего: нет |
amg, спасибо огромнейшее! Твой код действительно работает.
Мне подсказали еще такой вариант:
Это сообщение отредактировал(а) barbiturat - 25.12.2009, 12:23 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
||||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |