我是Perl的新手。我目前正在检查这个Perl文件,并使用了在另一个stackflow问题中找到的这一行,在此变量中对其进行了格式化,以获取“ <”符号后的所有文本。
($tempVariable) = $Line =~ /(\<.*)\s*$/;
因此,当前每当我打印此变量时,我都会得到输出
$tempVariable = <some text here @typeOf and more text here after
我需要获取介于“ <”符号和“ @”符号之间的所有内容。
我尝试查看其他堆栈流问题,并尝试将其实施到矿井中,但是我不断收到错误消息,因此,如果有人可以帮助我,我将不胜感激。
答案 0 :(得分:2)
my ($substr) = $str =~ /<([^<\@]*)\@/
or die "No match";
答案 1 :(得分:0)
您需要一个正则表达式
<
字符@
字符,或者@
字符@
字符即
#!/usr/bin/perl
use warnings;
use strict;
my $Line = '<some text here @typeOf and more text here after';
my $tempVariable;
# alternative 1: one-or-more characters
($tempVariable) = $Line =~ /<([^@]+)@/
or die "No match alternative 1";
print "Alternative 1: '${tempVariable}'\n";
# alternative 2: zero-or-more characters
($tempVariable) = $Line =~ /<([^@]*)@/
or die "No match alternative 2";
print "Alternative 2: '${tempVariable}'\n";
exit 0;
试运行(不删除空白):
$ perl dummy.pl
Alternative 1: 'some text here '
Alternative 2: 'some text here '