标题案例

这是我编写的一个小工具,用于帮助发布我从未得到过共享的DF:一个表面上很聪明的脚本,用于将文本转换为标题案例例如,我用它来标准化链接列表标题的大写。

这是源代码。

[更新,2008年8月13日:感谢Aristotle Pagaltzis,该脚本现在已经在几个方面得到了改进看到这里详情。]

它是一个Perl脚本,因此将其保存为文本文件,您可以在Perl工作的任何地方使用它我使用它作为系统范围的服务(使用快捷键Command-Shift-T)通过Jesper的优秀(和免费)ThisService实用程序

编写一个非聪明的title-casing函数非常容易最简单的方法是将每个单词的首字母大写但是,这是不对的,因为它会给你带来大写的小字如果等等你想要的不仅仅是知道不要把这些词大写,而且会联合国- 如果他们在输入中被错误地资本化,则将其资本化。

所以,这个脚本中的一些聪明之处:

  • 它知道不应该大写的小词并非所有样式指南都使用相同的单词列表 - 例如,许多小写, 但我不单词列表很容易修改,以满足您自己的口味/规则:

    my @small_words = qw(a an and as at but by en for if in of
                        on or the to v[.]? via vs[.]?);

    (这里唯一的诀窍是“v”和“vs”包括可选的点,用正则表达式语法表示。)

  • 该脚本假定具有除第一个字符以外的大写字母的单词已经正确大写这意味着它会单独留下像“iTunes”这样的词,而不是将其分为“ITunes”或更糟糕的“Itunes”。

  • It also skips over any words with line dots; “example.com” and “del.icio.us” will remain lowercase.

  • 它有硬编码的黑客专门处理我遇到的奇怪案例,如“AT&T”和“Q&A”,两者都包含小词(一个)通常应该是小写的。

  • 标题的第一个和最后一个字总是大写的,所以诸如“没什么可害怕的”之类的输入将变成“没什么可害怕的”。

  • 冒号后的一个小词将被大写。

这是一个边缘案例的小列表脚本处理。

至少可以说,源代码本身是相当令人费解的它是那些从小而简单开始的代码之一,随着时间的推移变得越来越难看,因为边缘案例一次只能处理一个我一直在使用这个脚本年份但是推迟发布它的理由是它看起来像是一种标点符号的代码,它给Perl的恐惧症带来了麻烦。

但是它有效,所以拧紧它,就在这里。

以前: 为什么Apple不会购买Adobe
下一个: 六六