Помогите составить регулярку

Статус
В этой теме нельзя размещать новые ответы.
А как присвоить выражению модификатор s что бы сделать замену в Notepad++ ?
 
Хз.
Попробуй в самой регулярке:
(?s)<tag>.*?<tag>
Если не получится, поищи галочку, что-нибудь про переносы строк.
Если не найдешь, то так:
<tag>[\S\s]*?<tag>
 
Прошу помощи еще раз =)
HTML:
<tag>
fsdgdf fg hfg   fsdf 
gfdg dfgfd 
gfdg
gfd
  dfsdf 
<tag>
Между tag любые символы, любое кол-во переносов строк, табуляций и пробелов.
Не для php.

Не нашел полной документации по регулярным выражениям в notepad++ по поводу области действия шаблонов, поэтому попробуйте экспериментально:

Код:
В Нотепаде++
Исходная строка:
    Это Петя <tag>
    fsdgdf fg hfg   fsdf 
    gfdg dfgfd</tag>
    и Оля
Поиск: (.*)<tag>.*</tag>(.*)
Заменить на: \1 \2

Получится ли такой результат?:
Код:
   Это Вася и Оля
 
jik
У тебя во первых (.*) по бокам ни к чему, а во вторых используется .* а не .*? Это означает что регулярка возьмет текст между первым и последним <tag> в документе, даже если их там сотня.
 
  • Нравится
Реакции: jik
jik
У тебя во первых (.*) по бокам ни к чему

то, что в скобках, присваивается переменным \1 и \2.
В результирующем тексте остаются \1 и \2, а тэг и его содержимое мы игнорируем.

jik
а во вторых используется .* а не .*? Это означает что регулярка возьмет текст между первым и последним <tag> в документе, даже если их там сотня.

Согласен.

Стоп, не вижу в кратком описании символа жадности '?'. Возможно, с помощью урезанных возможностей регулярных выражений notepad++ не удастся решить поставленную задачу. Чтобы усилить возможности регулярных выражений, необходимо поискать готовый плагин , или покопаться в исходниках notepad++, чтобы написать свой плагин-заменитель регулярных выражений и выложить его для общественности.
 
Я готов выключить нотепад++ если... посоветуете чем можно сделать замену в одном или нескольких файлах.

Желательно с поддержкой многострочности, а еще лучше будет: с возможностью создать "шаблон"(сет) для последущей замены в подобных файлах.
 
Ага, ты прав, скачал я этот Notepad++, не понимает не жадных модификаторов. Задачу решить можно, но лучше воспользоваться другой прогой, EditPad к примеру.
то, что в скобках, присваивается переменным \1 и \2.
В результирующем тексте остаются \1 и \2, а тэг и его содержимое мы игнорируем.
Здесь это не нужно. Мы заменяем не весь текст, а совпадение. Следовательно, достаточно заменить совпадение на пустую строку, чтобы оно исчезло.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху