Regex 模式的Perl搜索字符串:**@enron.com
我正在搜索以@enron.com结尾的所有有效电子邮件地址的字符串 我的作业如下:Regex 模式的Perl搜索字符串:**@enron.com,regex,perl,email,Regex,Perl,Email,我正在搜索以@enron.com结尾的所有有效电子邮件地址的字符串 我的作业如下: my $enronAddress =~/^(.+?)@\@enron\.com/i; 这没有做任何赋值,所以我想知道我做错了什么。为什么不先尝试匹配一个简单的“字符串结束”正则表达式?使用Perl的调试器: DB<3> x 'foo@enron.com' =~ /\@enron\.com$/ 0 1 DB<4> x 'foo@enrn.com' =~ /\@enron\.com$/
my $enronAddress =~/^(.+?)@\@enron\.com/i;
这没有做任何赋值,所以我想知道我做错了什么。为什么不先尝试匹配一个简单的“字符串结束”正则表达式?使用Perl的调试器:
DB<3> x 'foo@enron.com' =~ /\@enron\.com$/
0 1
DB<4> x 'foo@enrn.com' =~ /\@enron\.com$/
empty array
为什么不先尝试匹配一个简单的“字符串结尾”正则表达式呢?使用Perl的调试器:
DB<3> x 'foo@enron.com' =~ /\@enron\.com$/
0 1
DB<4> x 'foo@enrn.com' =~ /\@enron\.com$/
empty array
您正在对照正则表达式检查未初始化的变量。这可能不是你想要的 如果您在
$address
中有电子邮件地址,您可以执行以下操作:
my $address = 'example@enron.com';
if ($address =~ /^(.+)\@enron\.com$/) {
my $to = $1;
}
您正在对照正则表达式检查未初始化的变量。这可能不是你想要的 如果您在
$address
中有电子邮件地址,您可以执行以下操作:
my $address = 'example@enron.com';
if ($address =~ /^(.+)\@enron\.com$/) {
my $to = $1;
}
它不是赋值,而是将未初始化的变量与正则表达式进行比较。没有更多的上下文,很难修复代码,但首先,请将以下内容放在脚本的顶部:
use strict;
use warnings;
从现在开始,在你写的每一个新剧本中都要这样做
那也许是
my $text = <>;
my $addr = $text if $text =~ /\@enron\.com$/;
my$text=;
如果$text=~/\@enron\.com$/,我的$addr=$text;
它不是赋值,而是将未初始化的变量与正则表达式进行比较。没有更多的上下文,很难修复代码,但首先,请将以下内容放在脚本的顶部:
use strict;
use warnings;
从现在开始,在你写的每一个新剧本中都要这样做
那也许是
my $text = <>;
my $addr = $text if $text =~ /\@enron\.com$/;
my$text=;
如果$text=~/\@enron\.com$/,我的$addr=$text;
您是在字符串中查找所有有效地址,还是检查完整字符串是否为有效地址?我不明白你所说的“这不是做任何作业”是什么意思,因为你所写的只是一个正则表达式模式匹配
首先,您的模式中有两个@
符号,这显然是错误的
很大程度上取决于您认为是一个有效的电子邮件地址,但首先,它将检查<代码> $EnRONoLoad < /C> >的内容是否是有效的地址
if ( $enronAddress =~ /^[^@\s]+\@enron\.com$/i ) { ... }
这将打印出现在$enronAddress
print "$_\n" for $enronAddress =~ /[^@\s]+\@enron\.com/gi;
您是在字符串中查找所有有效地址,还是检查完整字符串是否为有效地址?我不明白你所说的“这不是做任何作业”是什么意思,因为你所写的只是一个正则表达式模式匹配 首先,您的模式中有两个
@
符号,这显然是错误的
很大程度上取决于您认为是一个有效的电子邮件地址,但首先,它将检查<代码> $EnRONoLoad < /C> >的内容是否是有效的地址
if ( $enronAddress =~ /^[^@\s]+\@enron\.com$/i ) { ... }
这将打印出现在$enronAddress
print "$_\n" for $enronAddress =~ /[^@\s]+\@enron\.com/gi;
我缩进了你的代码,所以它呈现为代码,嗯。应该有两个@char在里面吗?你可能需要开始了。我缩进了你的代码,所以它呈现为代码,嗯。应该有两个@char吗?你可能需要开始了。我正试图从字符串中提取一个有效的电子邮件地址,谢谢!我正在尝试从字符串中提取有效的电子邮件地址,谢谢!