поиск и замена

Russian main discussion
  • Author
  • Message
Offline
Posts: 8
Joined: Fri Jul 02, 2021 4:32 pm

Post by cellleexx »

opk44 wrote:cellleexx
1. Ну так-то было бы нелишним приводить тестовые примеры в виде текста, а не изображения. Это бы упростило жизнь отвечающим (меньше предположений строить).
Понял вас, буду так делать.
opk44 wrote:cellleexx
2. Если, как оказалось, "там переводы строк", то можно (теперь) предположить, что все "лишние" строки (кроме первой) начинаются с пробела.
Если это так, тогда ещё можно использовать "вилку" из двух регулярных выражений: 1) искать строку, начинающуюся с "PHOTO;" 2) искать строку, начинающуюся с пробела:

Code: Select all

(?-s)(^PHOTO;.*|^\s.*)
UPD.: Вообще-то я, скорее всего, не прав. Такой метод можно использовать только если искомый блок идет под удаление. Если же его нужно чем-то заменить, то "фрагментировать" блок на строки нельзя..
возможно. у меня не сработало.
Last edited by cellleexx on Fri Jul 16, 2021 3:57 pm, edited 1 time in total.

Offline
Posts: 8
Joined: Fri Jul 02, 2021 4:32 pm

Post by cellleexx »

opk44 wrote:
cellleexx wrote:Как выделить для замены найденую строку плюс (например) две предыдущие верхние и одну следующую...
Красивого решения в голову не приходит, но можно попробовать искать "механически": "X строка"+"X строка"+"Y строка"+"X строка"

Code: Select all

^.*$\n^.*$\n(FN:c)\n^.*$\n
Насколько красиво с точки зрения профи я незн), а мне главное это работает так, как мне нужно! Премного благодарен, тебе, opk44 любви тебе и удачи!!!

UPD:
Да! Работает очень хорошо и гибко)

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

cellleexx wrote:UPD:
Да! Работает очень хорошо и гибко)
Кстати, чуть-чуть о гибкости. Имеет смысл заменить первую повторяющуюся часть кода

Code: Select all

^.*$\n^.*$\n
на

Code: Select all

(^.*$\n){2}
а то вдруг желание будет искать не две строки, а пять, так "упечатаешься". Итоговый измененный код

Code: Select all

(^.*$\n){2}(FN:c)\n^.*$\n

Offline
Posts: 8
Joined: Fri Jul 02, 2021 4:32 pm

Post by cellleexx »

opk44 wrote:Итоговый измененный код

Code: Select all

(^.*$\n){2}(FN:c)\n^.*$\n
Это просто песня, дорогой opk44!!! А Также отдельное спасибо разработчикам!!
Ищет строку, которая начинается с FN:caдальшесимволы

Code: Select all

(^.*$\n){2}FN:ca\w+\n(^.*$\n){3}

Offline
Posts: 8
Joined: Fri Jul 02, 2021 4:32 pm

Post by cellleexx »

Есть:
9- 12
Через поиск и замену хочу получить:
9-12

Цифры разные, нужно только убрать пробел после тире, если оно после цифры.

Конечно я нахожу нужные фрагменты через

Code: Select all

\d- 
Но какой код для замены, чтобы пропустить цифру перед тире?..

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

cellleexx

Code: Select all

Что: (?<=\d-)\s*(?=\d)
Чем:

Offline
Posts: 8
Joined: Fri Jul 02, 2021 4:32 pm

Post by cellleexx »

YuS wrote:cellleexx

Code: Select all

Что: (?<=\d-)\s*(?=\d)
Чем:
Оооо. да!! Счастья Вам и удачи, дорогой YuS!!
Post Reply