使用perl计算字符串中的大写字母

发布于 2024-11-19 17:42:24 字数 76 浏览 1 评论 0原文

我想使用 perl 计算字符串中大写字母的数量。

例如:我需要知道单词“EeAEzzKUwUHZws”包含多少个大写字符。

I want to count the number of upper case letters in a string using perl.

For example: I need to know how many upper case characters the word "EeAEzzKUwUHZws" contains.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

缱绻入梦 2024-11-26 17:42:25

请注意 Unicode,因为直接 AZ 的东西对于其他字符(例如带重音的大写字母)来说并不真正可移植。如果您也需要处理这些,请尝试:

my $result = 0;
$result++ while($string =~ m/\p{Uppercase}/g);

Beware of Unicode, as the straight A-Z thing isn't really portable for other characters, such as accented uppercase letters. if you need to handle these too, try:

my $result = 0;
$result++ while($string =~ m/\p{Uppercase}/g);
时光瘦了 2024-11-26 17:42:25

使用 tr 运算符:

$upper_case_letters = $string =~ tr/A-Z//;

这是一个常见问题,tr 运算符通常优于其他技术

Use the tr operator:

$upper_case_letters = $string =~ tr/A-Z//;

This is a common question and the tr operator usually outperforms other techniques.

淡淡的优雅 2024-11-26 17:42:25
sub count {
  $t = shift;
  $x = 0;   
  for( split//,$t ) {
    $x++ if m/[A-Z]/;
  }
  return $x;
}
sub count {
  $t = shift;
  $x = 0;   
  for( split//,$t ) {
    $x++ if m/[A-Z]/;
  }
  return $x;
}
生来就爱笑 2024-11-26 17:42:25

简单的方法是:

$count = () = $string =~ m/\p{Uppercase}/g 

这是基于 Stuart Watt 的答案,但根据 提示ysth 在评论中发布了,使其成为一句俏话。

The one-liner method is:

$count = () = $string =~ m/\p{Uppercase}/g 

This is based off Stuart Watt's answer but modified according to the tip that ysth posted in the comments to make it a one-liner.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文