Найти и заменить вставленным пробелом

У меня есть такие строки в текстовом файле:

10.Divide using the divider at 12C. and pressure at 3.0.
11.Form into cylinders and put on boards, don't handle too much.

Это регулярное выражение (\d+\.)[A-Z] правильно находит числовое значение, за которым следует точка и заглавная буква.

Я хочу вставить пробел между точкой и заглавной буквой. Как мне это сделать?


person Kirk P.    schedule 11.11.2015    source источник


Ответы (2)


Ты в основном там. Когда вы заключаете подвыражение регулярного выражения в круглые скобки, вы можете ссылаться на него в поле «Заменить» операции поиска и замены. Так...

Find what: (\d+.)([A-Z])
Replace with: \1 \2

(См. похожие вопросы, такие как этот.)

person jdzions    schedule 11.11.2015
comment
Точка — это специальный символ в шаблоне, обозначающий любой символ. Если вы хотите сопоставить буквальную точку, вы должны избежать ее: \. - person Casimir et Hippolyte; 11.11.2015
comment
Это помогло: Найти: (\d+\.)([A-Z]) Заменить \1 \2 Раньше я не заключал [A-Z] в круглые скобки, поэтому у меня возникли проблемы. - person Kirk P.; 11.11.2015

На самом деле ваше регулярное выражение неверно:

(\d+.)[A-Z] соответствует 1 или более вхождению цифр, за которыми следует ЛЮБОЙ СИМВОЛ. . в регулярном выражении означает любой символ. Более правильным должен быть \d+\.[A-Z] (группа также опущена, так как она не требуется для сопоставления. Обратите внимание, что . экранирован).

Чтобы вставить пробел, помимо решения, предоставленного другим ответом, с использованием 2 групп: т.е. найти (\d+\.)([A-Z]) (обратите внимание на фиксированную точку) и заменить на \1 \2, вы также можете рассмотреть возможность использования функции поиска:

Найдите (?<=\d\.)(?=[A-Z]) и замените на (один пробел). Это регулярное выражение находит место, которому предшествует цифра, затем точка, за которой следует заглавная буква. Затем мы заменяем это место пробелом. (Обратите внимание, что группы просмотра вперед и назад не включаются в «сопоставленный» результат)

person Adrian Shum    schedule 11.11.2015