【问题标题】:How to make only the first character in each word uppercase in Perl [duplicate]如何在Perl中只使每个单词的第一个字符大写[重复]
【发布时间】:2015-01-11 03:54:12
【问题描述】:

我有一个包含所有大写单词的字符串,我只想将每个单词的第一个字母变成大写,或者将除第一个字符之外的所有字符都转换为小写。我一直在搞乱正则表达式,但无法正确处理。

【问题讨论】:

  • 是否需要使用正则表达式?如果没有:stackoverflow.com/questions/77226/…\
  • @OnlineCop 该问题的第二个答案显示了如何使用正则表达式执行此操作。这是一个重复的问题。

标签: regex string perl


【解决方案1】:

这是ucfirst() 的完美工作,这里不需要正则表达式:

$ echo 'FOO   BAR BASE' |
    perl -nE '$_ = lc($_); say join " ", map { ucfirst $_ } split /\s/' 

输出:

Foo   Bar Base

【讨论】:

    【解决方案2】:
    my $str = "FOOBAR FOOBAR";
    $str =~ s/(\S+)/\u\L$1/g;
    print $str;
    

    输出

    Foobar Foobar
    

    在 perldoc 中检查 ucfirstlc

    【讨论】:

      猜你喜欢
      • 2014-04-11
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多