小编Jas*_*ssi的帖子

Perl中的正则表达式,用于电子邮件分割

我的同行问我,你最后会找到@ if more than one@`的样子.

例:

j@ssi@aliencoders.com@..coding.com
Run Code Online (Sandbox Code Playgroud)

所以它应该显示j@ssi@aliencoders.com为用户名和 ..coding.com域名.Perl中是否有任何一个衬垫正则表达式可以获得所需的输出?

regex perl email-validation

3
推荐指数
2
解决办法
3852
查看次数

任何人都可以解释为什么foreach工作但不映射

如果密钥存在于%hash中,我试图将键值对放在%hash1上.数组中有一个元素,%hash ex上没有条目:@array =(1,2,3,4,5); #there在%hash处没有密钥1的哈希条目

所以我认为map会完成这项工作,我会在我的新哈希中获得4个键,即%hash1,但它会提供5个键.与此同时,我尝试了foreach并且它起作用了.我妄想我们可以用地图取代foreach,但这个案例让我思考.谁能解释一下,我的逻辑出错了?

#Method 1. Comment it while using Method 2
%hash1 = map { $_=>$hash{$_}  if(exists $hash{$_}) } @array;

# Method 2. Comment whole loop while using method 1
foreach (@array){
    $hash1{$_} = $hash{$_} if(exists $hash{$_});
}
Run Code Online (Sandbox Code Playgroud)

perl hash exists map

2
推荐指数
1
解决办法
341
查看次数

为什么Perl中的索引函数在这里表现得很奇怪

以下是示例代码:

my $test = "Mike Xavier Smith/123-45-1111/student";
my $name = substr( $test, 0, index($test, "/") );
my $ssn = substr( $test,index($test,"/"));
my $type = substr( $test,index($test, "/", 2) );
print "$name, $ssn, $type \n";
exit;
Run Code Online (Sandbox Code Playgroud)

输出:Mike Xavier Smith,/ 123-45-1111 /学生,/ 123-45-1111 /学生

这行substr($ test,index($ test,"/",2)); #offset应该是第二次出现的"/",这意味着它应该打印/学生.
但为什么它是从第一次出现"/"打印?

perl

1
推荐指数
1
解决办法
123
查看次数

有没有办法从Microsoft知识库迁移到Plone知识库CMS?

我正在研究IIS和微软的知识库CMS,但我想切换到开源和基于Linux的CMS,它可以轻松处理知识库管理的东西.

我知道Plone可能是最好的解决方案.但

如何将所有数据从Microsoft知识库迁移到Plone?

任何的想法?

knowledge-management plone

1
推荐指数
1
解决办法
163
查看次数

如何使用Perl中的map函数获取哈希中的数组值

我有一个与#结合的元素数组,我希望将其放入哈希中,该数组的第一个元素作为键,并且在将数组元素拆分为#之后将其作为值,但它不会发生.

例如:

my @arr = qw(9093#AT#BP 8111#BR 7456#VD#AP 7786#WS#ER 9431#BP ) #thousand of data 
Run Code Online (Sandbox Code Playgroud)

我想要的是

$hash{9093} = [AT,AP];
$hash{8111} = [BR]; and so on
Run Code Online (Sandbox Code Playgroud)

我们如何使用map函数完成它.否则我需要使用for循环,但我希望使用map函数.

perl map

0
推荐指数
2
解决办法
427
查看次数