Regex для замены первого строчного символа в строке на верхний - PullRequest
3 голосов
/ 17 апреля 2019

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

Я просмотрел сайт, пытаясь найти регулярное выражение для этого, но не смог. Я многое узнал о регулярных выражениях в процессе, что всегда является плюсом для моей работы, но я не смог найти именно то, что я ищу.

Я пытался найти способ компилирования кода из нескольких ответов, включая следующие:

Но по разным причинам никто из них не служил моей цели.

Я работаю с приложением для перевода, которое принимает регулярные выражения.

Как вы думаете, это вообще возможно? Это спасет меня от утомительной работы.

1 Ответ

0 голосов
/ 17 апреля 2019

Вы можете использовать это регулярное выражение для поиска первых букв предложений:

(?<=[\.!?]\s)([a-z])

Соответствует строчной букве [a-z], следующей за концом предыдущего предложения (которое может заканчиваться одним из следующих символов: [\.!?]) и пробелом \s.

Затем сделайте замену с помощью \U$1.

Это не работает только для самого первого предложения. Я специально сохранил простое регулярное выражение, потому что легко написать первую букву вручную.

Рабочий пример : https://regex101.com/r/hqwK26/1

UPD: Если ваше программное обеспечение не поддерживает \U, вы можете скопировать свой текст в Notepad ++ и сделать там замену. \U полностью поддерживается, только что проверил.

UPD2: Согласно комментариям, задача немного отличается, и только первые буквы каждой строки должны быть заглавными.

Для этого есть простое регулярное выражение: ^([a-z]) с тем же шаблоном замены.

Вот рабочий пример : https://regex101.com/r/hqwK26/2

...