从字符串中提取符号

时间:2011-10-30 07:40:29

标签: regex perl

我有一些字符串,例如下面的字符串,用于投资俱乐部项目(我是非技术人员)。

可能的字符串:

$EXPE - Analysts' Actions: TZOO, MSFT, GOOG, ....
$V - Analysts' Actions: TZOO, MSFT, GOOG, ....
$HPQ - Analysts' Actions: TZOO, MSFT, GOOG, ...

我想从上面的行中提取"EXPE""V""HPQ"以及符号可能为1-4个字符的其他类似字符串(例如$ V,$ GOOG,$ VMW)等

我只能提取公司符号是否为固定长度 - 任何指针?

3 个答案:

答案 0 :(得分:2)

试试这个:

^\$([A-Z]{1,4})

这将从字符串的开头查找$,后跟1到4个大写的a-z字符。

您可以在此处详细了解{1,4}量词和其他元字符:http://www.regular-expressions.info/reference.html

答案 1 :(得分:1)

my $string = q<$EXPE - Analysts' Actions: TZOO, MSFT, GOOG>;
my ($company_symbol) = $string =~ /^\$([A-Z]{1,4})/;
print "got $company_symbol from $string\n";

答案 2 :(得分:1)

这将从行

中提取所有符号
# you also need to check word boundaries.
my @symbols = $string =~ m/(\b[A-Z]{1,4}\b)/g 

显然我无法正确阅读这个问题。

my $symbol = $string =~ /\$([A-Z]+)/;

其他人都是正确的。