Автор Тема: Мультистроковый поиск регулярными выражениями  (Прочитано 1555 раз)

Agosha

  • Newbie
  • *
  • Сообщений: 2
Дорогие друзья, собственно столкнулся с такой проблемой:
- Имеем произвольный html код, к примеру:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0059)http://forum.sublimetext.ru/index.php?action=post;board=5.0 -->
<html xmlns="http://www.w3.org/1999/xhtml" g_init="6812"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="./Новая тема_files/index.css">
<link rel="stylesheet" type="text/css" href="./Новая тема_files/webkit.css">
<link rel="stylesheet" type="text/css" href="./Новая тема_files/custom.css">
Открываем поиск, включаем регулярные выражения и пробуем выделить весь текст при помощи: .* - результат текст выделился, но как только прописываем скажем так <!DOCTYPE.* (так называемая жадная квантификация) он выделяет лишь до окончания строки, а по правилам должен выделить весь код... Из-за символа новой строки не выделение не происходит, как же сие обойти?

Спасибо за ответы

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 605
Поиск происходит правильно, так как в реализации регулярных выражений в Python (а практически все операции с текстом в SublimeText происходят при помощи него) точка включает все символы, кроме символа новой строки. Чтобы точка в регулярном выражении «проглотила» переносы, нужно добавить соответствующий модификатор (?s).* или явно указать их в выражении (.|\n)*
« Последнее редактирование: Августа 28, 2015, 12:06:19 от Loac »

Agosha

  • Newbie
  • *
  • Сообщений: 2
При много благодарен, привык к Perl'ым )