[ID CS4-CS6] Заменить точку регулярную на полужирную.

Jeine

Да здравствует разум! Да сгинет маразм!
Топикстартер
15 лет на форуме
Сообщения
7 245
Реакции
6 279
Товарищи верстальщики, как правильно составить запрос ГРЕП, где

нужно найти любой полужирный или курсив+полужирный символ и после него точку регулярную
и заменить эту точку на полужирную

?
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
Вроде как только в два прохода.

Первый: найти полужирный за которым следует точка. Заменить на найденное + символ, не присутствующий в тексте.

Второй: найти символ + точка. Заменить на полужирную точку.
 
  • Спасибо
Реакции: Jeine

К.Т.

Участник
Сообщения
323
Реакции
337
Вроде как только в два прохода.
Первый: найти полужирный за которым следует точка. Заменить на найденное + символ, не присутствующий в тексте.
Второй: найти символ + точка. Заменить на полужирную точку.

Если в поиске задан стиль, то ему должно соответствовать всё, что определяется выражением grep, включая positive lookahead. То есть если задать поиск (.)(?=\.) + полужирный, то найдутся только сочетания полужирного символа с полужирной точкой.

Лучше так:
1. найти полужирный символ в конце слова, приделать к нему символ-маркер.
2. заменить сочетание маркер+точка на полужирную точку.
3. удалить все маркеры
 

vinnik63

Участник
Сообщения
322
Реакции
99
К.Т. сказал(а):
Лучше так:
1. найти полужирный символ в конце слова, приделать к нему символ-маркер.
но ведь так найдутся и символы в конце слова, после которых нет точки..?
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528

vinnik63

Участник
Сообщения
322
Реакции
99
А они разве мешают? :)
может, я что-то не так делаю, но если я нахожу любой жирный символ в конце слова и пытаюсь вставить что-нибудь после него, то это вставляемое тоже становится жирным... и снова складывается исходная ситуация — жирный символ и нежирная точка (и как их искать?)...
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528

К.Т.

Участник
Сообщения
323
Реакции
337
...и снова складывается исходная ситуация — жирный символ и нежирная точка (и как их искать?)...
Да, но символ заранее определённый (вы его сами выбрали) и нигде более не встречающийся.
Если трудно подобрать символ, который нигде более не встречается, можно использовать сочетание пары-тройки символов. Тут уж точно можно найти такое, которого в тексте гарантированно нет.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Первый проход
Поиск: (.)(?=\.)
Замена: $1.

Второй проход:
Поиск: \.\.
Замена: .

Всё — без атрибутов форматирования.
 

vinnik63

Участник
Сообщения
322
Реакции
99
Первый проход
Поиск: (.)(?=\.)
Замена: $1.

Второй проход:
Поиск: \.\.
Замена: .

Всё — без атрибутов форматирования.
на первый взгляд показалось, что полная бессмыслица, просто меняется точка на точку, однако всё работает как нужно... :) я бы ни за что не додумался... :)
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528
Второй проход:
Поиск: \.\.
Замена: .
Лучше поиск: (?<![\!\?\.])\.\.(?!\.)
(это чтобы отсечь варианты !.. и ?.. и если многоточие не одним символом набрано - … - а тремя точками, что, конечно, нежелательно :) )