Perl, измените регистр букв на {символ - PullRequest
0 голосов
/ 14 февраля 2019

Я новичок в Perl, и мне просто нужно сделать что-то быстрое и грязное.У меня есть строки текста (из файлов .bib), такие как

Title = {{the Particle Swarm - Explosion, Stability, and Convergence in a Multidimensional Complex Space}},

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

Спасибо

1 Ответ

0 голосов
/ 14 февраля 2019

В одну сторону, для вопроса, который задают

$string =~ s/{{\K(\w)/uc($1)/ge;

, в результате чего /e заставляет его оценить сторону замены как код.\K позволяет отбрасывать все предыдущие совпадения, поэтому {{ не «расходуется» (и, следовательно, не нуждается в повторном наборе на стороне замены).

Если вы хотите учесть возможные пробелы: $string =~ s/{{\s*\K(\w)/uc($1)/ge;, и, насколько я знаю, bibtex, почему бы не учесть и пробелы между фигурными скобками, поэтому {\s*{.

Если простая капитализациявсе, что вам нужно, то \U$1 на стороне замены достаточно, и нет необходимости в модификаторе /e с ним, согласно комментарию Grinnz .\U является обобщенным оператором, подобным кавычкам , который, таким образом, также может использоваться в регулярных выражениях;см. в разделе Escape-последовательности в perlre и в perlretut .

Рекомендую прочитать в учебнике perlretut ,Это будет иметь большое значение.

Однако я должен также спросить: Вы уверены , что вы действительно можете просто раскрыть это в своем файле?Будет ли он ловить все дела, которые вам нужны?Разве это не обрезает что-то еще, что ты не хотел?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...