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

Russian main discussion
  • Author
  • Message
Wio
Offline
Posts: 76
Joined: Wed Jan 05, 2011 6:07 am

Post by Wio »

darkvoland
Настройки -> Плагины... -> Scripts::Main -> SearchReplace.js:

Что: SLOVO
Чем: var words = ["слово_01", "слово_02", "слово_03"]; return words[Math.floor(Math.random() * words.length)];

[✓] Регулярные выражения
[✓] Заменять на функцию

SFC
Offline
Posts: 24
Joined: Sun Jul 12, 2015 9:37 am

Post by SFC »

помогите плз
нужно заменить все сочетания маленькая буква, большая буква
на маленькая буква точка большая буква
что:

[а-я][А-Я]

заменить на:

$1.$2

Этот код не работает.

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

Post by opk44 »

SFC
Освежите в памяти "\AkelFiles\Docs\AkelHelp-Rus.htm" (раздел "Синтаксис регулярных выражений")
1. для использования обратных ссылок оборачивайте группы (каждую) круглыми скобками (шаблон).
2. При использовании стандартного диалога замены обратные ссылки обозначаются как обратный слеш+номер: \n (не следует путать со скриптом "SearchReplace.js")

Итого:
Если через стандартный диалог "Replace" (CTRL+R), то можно так:

Что: ([а-я])([А-Я])
Чем: \1.\2
[*] Match Case
[*] Regular expressions

Если через скрипт "SearchReplace.js", то можно так:

Что: ([а-я])([А-Я])
Чем: $1.$2
[*] Regular expressions
[*] Case Sensitive

SFC
Offline
Posts: 24
Joined: Sun Jul 12, 2015 9:37 am

Post by SFC »

opk44
Спс, все работает :)

Offline
Posts: 2
Joined: Sat Jan 07, 2017 5:14 pm

Post by vamfir »

Товарищи, есть такая проблема.
Я собираюсь опубликовать свою книгу на одном сайте.

У меня все названия глав написаны в верхнем реестре и никакими тегами не выделены.
Для публикации нужно их перевести в нижний реестр и выделить специальным тегом.

То есть фрагменты вида

Code: Select all


БЕРЕГ

Текст главы.

МОРЕ

Текст главы.

Найти и заменить на

Code: Select all


<g>Берег</g>

Текст главы.

<g>Море</g>

Текст главы.

Как это закодировать?
Вручную я реестр меняю с помощью CTRL+8, но названий глав много...

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

Post by YuS »

vamfir wrote: Как это закодировать?
SearchReplace.js

[+] Регулярные выражения
[+] Многострочно
[+] Зменять на функцию

Code: Select all

Что: ^( *[А-ЯЁ])([А-ЯЁ ]+)$
Чем: return "<g>"+$1+$2.toLowerCase()+"</g>"

Offline
Posts: 2
Joined: Sat Jan 07, 2017 5:14 pm

Post by vamfir »

Спасибо большое, всё отлично сработало!

Offline
Posts: 6
Joined: Thu Aug 31, 2017 9:13 am
Contact:

Post by Alex45orp »

подскажите, плз, как заменить все строки последнего столбца на [NONE] одним кликом, как показано на фото. Спасибо.

Image

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

Post by opk44 »

Alex45orp
Через стандартный диалог замены [CTRL+R]
Что:

Code: Select all

\s\S*\n
Чем:

Code: Select all

 [NONE]\n
Опции:
[*] Регулярные выражения
Направление:
(*) С начала
Кнопка: "Заменить всё"

Примечания:
1. Перед [NONE] в строке замены "Чем:" поставьте пробел.
2. Решение подразумевает, что после последнего видимого символа в строках пробелов нет. Если есть концевые пробелы, то лечится предварительным нажатием [ALT+BACKSPACE] до вызова диалога замены.

Offline
Posts: 6
Joined: Thu Aug 31, 2017 9:13 am
Contact:

Post by Alex45orp »

opk44
Спасибо большое, всё сработало отлично!
А можно где-то взять инструкцию на русском по составлению кодов замен, чтобы не спрашивать постоянно?

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Alex45orp
см. пункт меню Справка - Руководство, раздел "Синтаксис регулярных выражений".

Offline
Posts: 6
Joined: Thu Aug 31, 2017 9:13 am
Contact:

Post by Alex45orp »

...................долго вникал в "Синтаксис регулярных выражений" - практиковался еще дольше, но сделать(написать коды) два последних столбца [NONE] [NONE] (см.фото) так и не смог :(
помогите пожалуйста ...
Всем спасибо.

Image

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

Post by opk44 »

Alex45orp
Через стандартный диалог замены [CTRL+R]
Что:

Code: Select all

(?-s)(\.stk)(.*\n)
Чем:

Code: Select all

\1 [NONE] [NONE]\n
Опции:
[*] Регулярные выражения
Направление:
(*) С начала
Кнопка: "Заменить всё"

P.S.
В предыдущем случае искалось "все символы после последнего пробела".
В данном случае ищется "все символы, идущие после '.stk' ".
Обратная ссылка '\1' засовывает '.stk' обратно. Получается немного короче чем

Code: Select all

\.stk [NONE] [NONE]\n
Опция (?-s) использована для "подстраховки" (см. "слепую опцию" обработки символа точки в диалоге замены в виде маленького черного треугольника справа от опции "Регулярные выражения")

Offline
Posts: 6
Joined: Thu Aug 31, 2017 9:13 am
Contact:

Post by Alex45orp »

opk44
спасибо огромное, насколько упростилась работа можно судить по количеству строк в документе(721) - а таких документов может быть несколько в одном проекте, еще раз спасибо opk44.
P.S. Судя по количеству вопросов в данной теме, освоить раздел "Синтаксис регулярных выражений" далеко не всем по плечу ...

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Alex45orp
С этим надо постоянно работать, иначе через месяц всё выветривается из памяти. У меня точно также, - начинаешь разбираться, решишь какую-нибудь совсем простенькую задачку, а следующая может быть появится через пол года, если не больше, потому с каждым разом знания опять на нуле. Хорошо тем, у кого с этим работа связана, потому что личного времени всем этим постоянно заниматься не осталось никакого...
Post Reply