Пробелы через букву

Статус
Закрыто для дальнейших ответов.

umkas

Участник
Топикстартер
Сообщения
278
Реакции
21
Уважаемые, добрый час!
Столкнулся с пробелами после каждой буквы в словах где должен быть трекинг.
Как лечить? что-то типа ([\l\u])\s(\l)\s(\l)\s(\l)\s(\l)\s
Как задать повторение "n-раз"
 

suntory

Administrator
15 лет на форуме
Сообщения
23 561
Реакции
12 526
Зачем повторение и как нужные пробелы будете сохранять?
 

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
Изначально подобный партен уничтожит однобуквенные частицы и предлоги.
Повторение указывается звёздочкой — любое кол-во раз, вопрос — ноль, либо один раз, либо в круглых скобках {от, до}
Но на вскидку не вижу решения через «повторения».
Очевидное решение задачи — замена пробелов на «ничего» в нужных местах. Разумеется, это долго.
Поиск проблемного текста возможен с помощью партена:
Код:
(?<=\w)\s(?=\w)
Но замена — только после оценки глазами. Для ускорения рекомендую открыть окно поиска CTRL+F, ввести партен поиска и, используя «find» + «change/find», пробежаться по тексту.
 

umkas

Участник
Топикстартер
Сообщения
278
Реакции
21
Спасибо, естественно замена только после оценки!
 

NNN5

Модератор
15 лет на форуме
Сообщения
1 259
Реакции
1 014
Мне кажется, лучше искать отдельно для каждой буквы алфавита. Например, однобуквенные слова вроде "д" вряд ли возможны. Их (с пробелами) можно всех поменять на автомате, не забыв временно назначить какой-нибудь символьный стиль. И их прописные варианты тоже.
А те, которые допускают варианты ("а", "и", "к"), прочесать с просмотром.
Потом отдельно пройтись по всем местам, где оказался этот символьный стиль. Для уверенности.
 
  • Спасибо
Реакции: Serbel

imma

15 лет на форуме
Сообщения
3 089
Реакции
2 185
Можно попробовать так:

1) меняем все слова от 2-х букв и более с пробелом после слова на такие же слова с заменой пробела на другой символ, например
(\w\w+)space на $1{}
где space = пробел, не "\s" !!

2) делаем тоже самое, но с пробелом перед словом (символы для замен подбираются по вкусу, ширине и т.п.)
space(\w\w+) на []$1

Получаем текст типа:
По{}словам{}собеседника{}издания,[]среди{}а р г у м е н т о в,[]которые{}приводил{}в х о д е[]дискуссии

Задача почти решена, если бы не слова типа "в х о д е".

Вариант решения 1.
-- тупо удалить пробелы
-- восстановить нормальные пробелы
-- запустить орфографию

Вариант 2.
-- заменить проблемные пробелы на какой-нибудь окрашенный символ... мне нравится символ pipe, для простоты -- палка
По{}словам{}собеседника{}издания,[]среди{}а|р|г|у|м|е|н|т|о|в,[]которые{}приводил{}в|х|о|д|е[]дискуссии

-- восстановить все нормальные пробелы ( {} и [] ) и пройтись по тексту визуально, заменяя вручную в нужном месте одну палку на пробел
-- палки удалить


Вариант 2 лучше тем, что можно сразу пометить слова (или хотя бы пару символов) с пробельной разрядкой для последующей работы. Впрочем, в первом тоже можно))
 

imma

15 лет на форуме
Сообщения
3 089
Реакции
2 185
Да уж... с датой я попал)) Ну, может пригодится еще кому.
 
Статус
Закрыто для дальнейших ответов.