检查给定的字符串是否以Perl中的A-Z开头

时间:2014-02-28 23:44:07

标签: regex perl

我前几天接受过编程面试,我需要在Perl中编写一段代码,并在标题中描述功能,过了一段时间,我想出了以下解决方案:

sub startWithUppercaseLetter {
    return @_[0] =~ m/^[A-Z]/;
}

面试官似乎对此解决方案不满意,任何人都可以提供更好的解决方案吗?感谢

2 个答案:

答案 0 :(得分:5)

我会写

sub starts_with_capital {
  shift =~ /^[A-Z]/;
}

您自己的解决方案无法生效use warnings,而

Scalar value @_[0] better written as $_[0]

在本地标识符中使用大写字母是不好的做法。

答案 1 :(得分:1)

我真的认为这不是一个好用的标题,因为你的正则表达式将返回空匹配或匹配(你想要什么作为要解决的问题的定义)。这个人也可以想象一遍又一遍地输入这个功能名称,以检查某些东西是否有资本。

在Perl中有很多方法可以做到。

return @_[0] if /^[A-Z]/;

return;

实际上不需要m,因为你只需要字符串的开头和任何新的行等,因为你只关心第一个字符的开始。你的方式,是的,可以有一个空的匹配并且工作相同;使其可以接受采访或提供两个例子:如上所述,然后是空手。