LINUX.ORG.RU

поиск текста по регэскпу с изменением регистра символов

 


0

2

коротко: нужно найти по регэкспу куски текста и в них заменить буквы (кириллица) на заглавные.

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

"(^|[\.?\!]( -|\")? )[а-я]"

ну, есть нюанс, что после троеточия может как продолжаться текущее предложение, так и начинаться новое, но тут все равно человек нужен. всякие скобки - туда же.
в общем, найти-то нашли, а вот как теперь только совпадающие фрагменты - convert, туды его в качель, to uppercase, так сказать?
наверняка должно быть как-то очень просто, типа однострочника на перле (не того!), но я че-то не умею))

В Vim это выглядит так (с другими правилами экранирования):

:s/\(^\|[\.\?\!]\( -\|\"\)\? \)[а-я]/\u\0/g

В man perlre тоже есть \u модификатор, но что-то он у меня на кириллицу не реагирует.

xaizek ★★★★★
()

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

Этот мудак тебя в корректоры нанял? Зарплату платит? Если нет, то шли его нах вместе с его писаниной.

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

Если немножко подумаешь, то поймёшь что найти их совсем непросто. Тяп-ляп можно сделать, но постоянно будут вылазить «нюансы». В общем случае надо смысл текста понимать.

man perlrun, man perlrequick (look for «search and replace»).

debugger ★★★★★
()

В Vim это выглядит так (с другими правилами экранирования):

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

sed надо изучить

до какого уровня джедайства? а то его можно до старости изучать)) если я тупой и не знаю элементарного - ткни носом, буду рад

Этот мудак тебя в корректоры нанял? Зарплату платит? Если нет, то шли его нах вместе с его писаниной.

да упаси сотона за деньги с такой фигней связываться! нет, это любительский, опенсорцный, джаст-фор-фан, как говорится, проект.
ну и насчет аффтара есть один нюанс))

Если немножко подумаешь, то поймёшь что найти их совсем непросто. Тяп-ляп можно сделать, но постоянно будут вылазить «нюансы». В общем случае надо смысл текста понимать.

не, ну это само собой. без человека по-любому никуда. но исправить вылезшие косяки - это в разы меньше работы, чем лопатить вообще все вручную

PerdunJamesBond
() автор топика
Ответ на: комментарий от PerdunJamesBond

ну и насчет аффтара есть один нюанс))

Дай-ка угадаю, этот автор и есть ты, не так ли? :D

anonymous
()

Надо нейронку учить. BERT там подтянуть, чтобы модно, молодёжно. На самом деле так и надо делать, так как в общем случае задача не тривиальна и не всегда можно понять, начало ли предложения или его продолжение...

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.