Perl,改变{character的字母案例

问题描述 投票:-1回答:1

我是一个perl newb,只需要做一些快速而肮脏的事情。我有文本行(来自.bib文件),如

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

如何写一个正则表达式,使得第二个字母后的第一个字母成为大写字母。

谢谢

regex perl
1个回答
3
投票

一种方式,对于问题的问题

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

由此/e将其作为代码评估替换方。 \K让它掉落所有以前的比赛,所以{{没有被“消耗”(因此不需要在替换方面重新输入)。

如果你想允许可能的空间:$string =~ s/{{\s*\K(\w)/uc($1)/ge;,据我所知bibtex为什么不允许在curlies之间的空间,所以{\s*{

如果你需要简单的大写,那么\U$1在替换方面就足够了,并且根据/e的评论,不需要Grinnz修饰符。 \U是一种通用的quote-like operator,因此也可用于正则表达式;请参阅Escape序列in perlrein perlretut

我推荐阅读perlretut教程。这将有很长的路要走。

但是,我还必须问:你确定你可能确实只是在你的整个文件中释放了它吗?它能抓住你需要的所有案件吗?它不会削减你不是故意的其他东西吗?

© www.soinside.com 2019 - 2024. All rights reserved.