识别具有多个@符号的行

时间:2015-02-04 17:48:54

标签: perl

给出诸如(但不总是以这种确切格式)的输入

  

an@example.commailto:an@example.com

测试一条线路是否存在多个@符号的最有效方法是什么?

2 个答案:

答案 0 :(得分:6)

计算字符串中字符的规范方法是使用tr///

喜欢这个

use strict;
use warnings;
use 5.010;

my $s = 'an@example.commailto:an@example.com';

my $n = $s =~ tr/@//;

say $n;

<强>输出

2

所以你可以写

if ( $s =~ tr/@// > 1 ) {
  # do stuff
}

答案 1 :(得分:1)

if ( $str =~ /@.*@/ ) 

将匹配@后跟任意数量的字符(甚至为零)然后@的所有行。